docker run hello-worldの動作
docker run hello-world
- dockerはdockerコマンド
- runはサブコマンド
- hello-worldはイメージの指定
dockerクライアントからdockerデーモンが働き、ローカルで指定されたimageを検索しなければ、①Docker Hubからhello-worldのimage検索、ダウンロードする。その後②dockerデーモンはimageを基にdocker containerを作成、③起動する。docker containerが起動した際のメッセージがdockerクライアントに送られ、ターミナルに表示される。
こうした①~③処理自体にコマンドがある
- imageの取得...
docker pull
- containerの作成...
docker create
- containerの起動...
docker start
丸ごとひっくるめてdocker run
となっている
Docker Hubとは?
imageがたくさん保存されている外部サイト
個人でも保存できるし、公開もできる。https://hub.docker.com/
ページ詳細を確認すると使い方がわかる。
タグ指定などでversion名を管理することもあるimage名:タグ
↓一番新しい更新のhello-world(最新とか限らないので注意)
docker run hello-world:latest
↓python3.6のimage
docker run python:3.6
などがある。
そもそもdocker imageとは?
コンテナ実行に必要なファイルをまとめたファイルシステム
- imageとなったデータは読みとり専用
- 複数のレイヤが積み重なっている
- imageがcontainerになるときに読みとり可能なレイヤーが追加される
レイヤーの組み合わせが自在
- レイヤーは組み合わせて使えるLinux imageにpython3.7 image載せたり。
- ただし、imageとしてのレイヤーは残ったままなので、定期的に見直しが必要。
- 軽量が売りのcontainerでもレガシーの遺産が積み重なると身動き取れなくなってしまう