1
1

More than 3 years have passed since last update.

Dockerを知らない社会人2年目の素人がDockerコンテナをRunしたことをちょっと深堀メモ(docker runとDockerHubとdocker image)

Posted at

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クライアントに送られ、ターミナルに表示される。

こうした①~③処理自体にコマンドがある
1. imageの取得...docker pull
2. containerの作成...docker create
3. containerの起動...docker start

丸ごとひっくるめてdocker runとなっている

Docker Hubとは?

imageがたくさん保存されている外部サイト
個人でも保存できるし、公開もできる。https://hub.docker.com/

docker image official.png
↑hello-worlrdを検索した図。とりあえず使う場合はOFFICIAL IMAGEと入っているものを使うとよい(Docker社による審査がされているらしい)

ページ詳細を確認すると使い方がわかる。

タグ指定などで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でもレガシーの遺産が積み重なると身動き取れなくなってしまう
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1