Mitomex Blog

docker run コマンドを実行したときの流れ

2021-01-08

docker run hello-world

上記コマンドを実行したときに、裏ではどういったことを行っているのかを見ていく。

  1. docker run コマンドを実行すると Docker Client が命令を受け取り、Docker Server に hello-world を実行するよう指示する
  2. Docker Server は hello-world を実行するため、ローカル(Image cache)に hello-world の Image ファイルがあるか確認する
  3. Image ファイルがない場合は、Docker Hub に Image ファイルを探しにいく
  4. hello-world の Image ファイルを見つけて、ローカルにダウンロードする
  5. hello-world の Image ファイルを使って Container を作成
  6. 初期コマンドである「Hello world」を表示する

上記が一連の流れ。

Docker Hub とは

Docker Hub は Image ファイルのリポジトリ。

誰でも自由に使えるところ。

Docker run コマンドは2つのコマンドを合わせたもの

Docker run は docker createdocker start の2つのことを実行している。

docker create

docker create <image name>

で Container を作成。

docker start

docker start <container id>

で初期コマンドを実行。

正確には docker run コマンドでは -a オプションをつけたものと同じ。

docker start -a <container id>

-a をつけることによって実行結果を表示してくれる。

実行時にコマンドプロンプトにつなげるには

docker run -it <image name> sh

上記コマンドを実行すると container 実行時に container 内のコマンドプロンプトと接続した状態になる。

ポートマッピング

ローカルのポートと container 内のポートをつなげるには run コマンド実行に行う。

docker run -p <ローカルのポート>:<container のポート> <image name>

上記でつなぐことができる。

例)

docker run -p 5000:5000 <image name>