「Docker」について調べていく中で、Docker〇〇というワードが多すぎて混乱してたので見かけたやつ片っ端からまとめます。
適当に調べて適当に書いてる節があるので鵜呑みにしないでください。
Docker
Docker(ドッカー[4])は、コンテナ仮想化を用いてアプリケーションを開発・配置・実行するためのオープンプラットフォームである[5]。
https://ja.wikipedia.org/wiki/Docker
vagrantみたいな仮想環境構築ツール。
「DockerFile」というファイルで環境の管理を行う。
VMとかと比べて軽いらしい。
Dockerコンテナ
仮想環境の実態。複数立ち上げて複数サービスからなるアプリを再現したりできる。
下記の「Dockerイメージ」をもとに作成する。
Dockerイメージ
「Dockerコンテナ」の設計図。
下記の「DDockerFile」をもとに作成する。
DockerFile
Dockerコンテナ内の仮想環境の情報(Dockerイメージ)を記載するファイル。
このDockerFileの内容をもとに仮想環境を作成するため、DockerFileを共有すればどんなPCでも同じ環境が用意できるとかいう優れもの。
例えばPHPのバージョンだけ変えた別環境を作りたいってなったとき、DockerFile内のPHPバージョンの指定だけ変えればすぐ作れたりする。
Boot2Docker
PCにDockerを使える環境を用意するためのツールその1。
その昔Macが主流だったDocker技術をwindowsでも使いやすいようにしたものらしい。(適当に書いてます)
Docker関連の技術としては古いので、ほぼ絶滅。
DockerToolBox
PCにDockerを使える環境を用意するためのツールその2。Boot2Dockerの後継として2015年に登場したらしい。
Toolbox には以下の Docker ツールが入っています。
Docker Machine を操作する docker-machine コマンド
Docker Engine を操作する docker コマンド
Docker Compose を操作する docker-compose コマンド
Docker GUI である Kitematic
シェルに接続できる Docker コマンドライン環境
Oracle VirtualBox
https://docs.docker.jp/toolbox/overview.html
Docker関連のコマンドがたくさん使えるようになるのでツールボックス。
VirtualBoxを介して仮想環境を生成する。
Docker関連の技術としては古いので、ほぼ絶滅。
docker-machine
DockerToolBoxによって使えるようになるコマンドその1。
Dockerエンジンが搭載されたVMを起動する。
かつてはdockerはlinuxのものだったので、linux以外で使う場合はVM上にlinux環境を用意し、その上にdockerデーモンを乗せて実行するという手法をとっていた。
現在は後述するDocker Desktopなど、dockerがlinux以外でも使えるように進化していったので、最近はほぼ見かけない。
dockerデーモン
人間様からの命令でdockerコンテナやイメージを作成したり起動したりする悪魔。
dockerがインストールされたマシンに住んでいて、docker系コマンドをエネルギーとする。
docker-compose
DockerToolBoxによって使えるようになるコマンドその2。
下記の「Docker Compose」を実行する。
こちらはdocker-machineと違って最近もよく見かける。
Docker Compose
アプリケーション内の複数のコンテナを同時に立ち上げられるツール。
「docker-compose.yml」というファイルでコンテナ情報の管理を行う。
WEBサーバ用とかDB用とか用途別にコンテナを組む場合に使われるので、docker-machineと違ってよく見かける。
docker-compose.yml
docker-composeコマンドで参照されるファイル。
コマンドで立ち上がる各コンテナの情報が記載されている。
コンテナ情報(Dockerイメージ)を生成するのがDockerFileで、そのイメージをもとにコンテナを同時に生成するのがdocker-compose。
Docker Desktop
PCにDockerを使える環境を用意するためのツールその3。
最近、一定の従業員数を超える企業で使う場合ライセンス料が必要になった。
(ので、WSL2とubuntuを使ってDockerを使う動きがあるらしい)
2022年現在、個人でDockerを使う場合はこれ一択。
Docker Desktop for Windows
Windows向けの「Docker Desktop」のこと。
公式ドキュメントからして混同してるから正直ややこしい(自分だけ?)
Docker for Windows
Windows向けの「Docker Desktop」のこと。略すな
Docker Desktop for Mac
Mac向けの「Docker Desktop」のこと。
Docker for Mac
Mac向けの「Docker Desktop」のこと。略すな