Docker†
- 仮想化を実現させるためのコンテナを作成・実行するためのもの
- コンテナプラットフォームはDocker以外にもRedHat OpenShiftといった製品もある
- コンテナは仮想マシンと異なり軽量であり,異なるマシンでも同じ環境を再現できる可搬性も高い
- 自環境を汚すことなく,サーバ環境を再現することが可能
コンテナイメージとコンテナ†
- コンテナはコンテナイメージから作成される
- コンテナ自体はOS上で動作するプロセス,コンテナイメージは実行するコンテナの情報を記載したもの
- コンテナイメージはDockerHubといったレジストリで配布されている
- イメージのバージョンはTagで管理されている
ライフサイクル†
- コンテナは"作成" -> "実行" -> "停止" -> "削除" というライフサイクルで動く
- コンテナは作成コストが比較的低いため,基本的に利用が終わったあとは削除する
- データを永続化するにはVolumesやBind mountsを利用する
- コンテナの作成はコンテナイメージを元にして行われる,各ライフサイクルを迎えるのはコンテナ,イメージ自体は再利用可能
Engine/CLI/Desktop†
Docker Engine†
- コンテナを実行するためのソフトウェア
- Linuxカーネルの機能を使用するため,Linux環境でのみ実行可能
Docker CLI†
- Docker Engineを操作するためのコマンドを提供する
- スクリプトへの組み込みや,他ツールとの連携で自動化を実現させることが可能
Docker Desktop†
- macやWindowsでDockerを使うためのGUIアプリケーション
- Docker EngineやLinuxカーネルなどDockerを利用するための一式が入ったアプリケーション
- Linuxカーネルを含むため,Liux以外でDockerを利用する場合はこれをインストールする必要がある