‫そこで今回の講義では､
‫dockerコンテナのrunコマンドを実行したときに､ 実際にバックグラウンドで何が起こっているのかについて､ 簡単に説明しましょう｡
‫Dockerはコンテナを動かすだけのもので､ それが主な仕事だという誤解があることがあります｡
‫しかし､ 実際にはコンテナがコマンドを実行するだけでなく､ バックグラウンドで多くのことが起こっています｡
‫docker container runと入力すると､ バックグラウンドで､ コマンドの最後に指定したイメージを探します｡
‫一番最後にnginxと入力したのは､ 新しいコンテナとして実行したいイメージの名前だったのを覚えていますね｡
‫そのため､ ローカルに画像キャッシュを探すことになるのです｡ そこで見つからなければ､ デフォルトのリモートイメージリポジトリであるDocker
‫Hubに移動することになる｡
‫デフォルトでは､ そこで検索してダウンロードし､ 画像キャッシュに保存します｡
‫バージョンを指定しなかった場合 -- 今回はnginxと入力しましたが -- 実際にはnginx
‫colonと入力することもできますし､ それについては次のセクションで説明します -- しかしバージョンを指定しなければ､
‫最新のものが選択されます｡
‫そして､ そのイメージを手に入れ､ 準備が整ったら､ そのイメージをもとに新しいコンテナを立ち上げるのです｡
‫画像のコピーを作るわけではありません｡
‫実際には､ その画像が去った場所の上に､ 新しい変更のレイヤーを開始し､ ネットワーキングをカスタマイズすることになるのです｡
‫Dockerの仮想ネットワーク内にある､ 特定の仮想IPアドレスを与えることになります｡ 実際に指定したポートが開放されるんです｡
‫Publishコマンド､
‫-publishを指定しなければ､ ポートは全く開放されません｡
‫80:80としたのは､ ホストの80番ポートを使って､ コンテナの80番ポートにすべてのトラフィックを転送するように指示しているのです｡
‫そして､
‫そのコンテナは最終的にDockerfileで指定されたコマンドを使って実際に起動することになります｡
‫実はこれらのコマンドの大部分は､ コマンドラインから変更することができます｡
‫これらはすべて本当にデフォルトです｡
‫実は画像のバージョンを指定することができるんです｡
‫別のポートを指定したり､ そのコンテナを起動するときに実行するデフォルトのコマンドを指定したりすることができるのだ｡
‫しかし､ 非常にシンプルなコマンドなので､ 箱から出すと多くのデフォルトが使われるだけでした｡
‫ご覧のように､ 確かに背景にはいろいろなことが起こっています｡
‫そして後ほど､ それぞれを別々のセクションで掘り下げていく予定です｡