このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Docker入門】Webサーバーをビルドする②

Webサーバーをビルドする①」の続きです。

引き続き、Webサーバーをビルドしていきます。

Webサーバーのビルド

・「docker build -t webserver1 . 」コマンドを実行します

 コマンドの最後に「.」が付いていますので注意してください。「.」は、 カレントディレクトリを表していて、このディレクトリの中にDockerfileがあります。Dockerfileを指定する必要はありません。「Webserver1」は、ビルドする イメージの名前です。

PS C:\Users\joeac\Desktop\docker\Webserver1> docker build -t webserver1 .
[+] Building 69.8s (9/9) FINISHED                                                                        docker:default
 => [internal] load build definition from Dockerfile                                                               0.0s
 => => transferring dockerfile: 409B                                                                               0.0s
 => [internal] load .dockerignore                                                                                  0.0s
 => => transferring context: 2B                                                                                    0.0s
 => [internal] load metadata for docker.io/library/ubuntu:latest                                                   4.4s
 => [auth] library/ubuntu:pull token for registry-1.docker.io                                                      0.0s
 => [1/3] FROM docker.io/library/ubuntu:latest@sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44e  2.3s
 => => resolve docker.io/library/ubuntu:latest@sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44e  0.0s
 => => sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e 1.13kB / 1.13kB                     0.0s
 => => sha256:aa772c98400ef833586d1d517d3e8de670f7e712bf581ce6053165081773259d 424B / 424B                         0.0s
 => => sha256:ca2b0f26964cf2e80ba3e084d5983dab293fdb87485dc6445f3f7bbfc89d7459 2.30kB / 2.30kB                     0.0s
 => => sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb 29.54MB / 29.54MB                   1.4s
 => => extracting sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb                          0.8s
 => [internal] load build context                                                                                  0.0s
 => => transferring context: 95B                                                                                   0.0s
 => [2/3] RUN apt-get update && apt-get install -y -q nginx                                                       62.7s
 => [3/3] COPY index.html /var/www/html                                                                            0.0s
 => exporting to image                                                                                             0.3s
 => => exporting layers                                                                                            0.3s
 => => writing image sha256:f238687ef1c22942cbc77326ad347518f364673990c8a50f0416bb8a2c4c3339                       0.0s
 => => naming to docker.io/library/webserver1                                                                      0.0s

What's Next?
  View a summary of image vulnerabilities and recommendations → docker scout quickview

作成されたイメージの確認

作成されたイメージを確認します。

・「docker imagae ls」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\Webserver1> docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
webserver1   latest    f238687ef1c2   5 minutes ago   183MB

コンテナの起動

「web-nginx」コンテナを起動します。

・「docker container run --name web-nginx -it -d -p 80:80 webserver1」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\Webserver1> docker container run --name web-nginx -it -d -p 80:80 webserver1
d637da90b7002089b2adb656869c88152f6780fd144ee6094ca5fc8881f1d618

Webブラウザで確認

・Webブラウザを起動して、URLに「localhost」と入力します。

ホームページが表示されます。

Dockerイメージのレイヤ構造

ここで、ビルドしたDockerイメージのレイヤ構造について補足説明しておきます。

定義したDockerfileの詳細な解説は以下のリンク先を参考にしてください。

【Docker入門】Dockerfileの構造②

【Docker入門】Dockerfileの構造②  ここでは、「Webサーバーをビルドする①」で作成したDockerfileの記述内容を詳しく解説していきます。 「Webサーバーをビルドする①」で…

 5つの命令から構成される Dockerfile は 5 つのレイヤーで構成されます。Dockerfile の命令ごとにイメージが作成されて、下図のように積み上がっていきます。

まとめ

 DockerfileはDockerコンテナのビルド手順を記述するファイルであり、各命令はそれぞれ新しいイメージレイヤーを作成します。Dockerは各命令を実行するたびに、前のステップで作成されたイメージに変更を加えて新しいイメージを作成します。

 この仕組みにより、Dockerfile内の各命令が順番に実行され、最終的に完全な状態のコンテナイメージが構築されます。命令ごとにイメージが作成されることで、変更点が明確になり、再利用性や効率性が向上します。

関連コンテンツ