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

【Docker入門】ONBUILDを使ってみる①

ここでは、ONBUILDを試していきます。

少し長くなりますので、3部に分けて解説します。

 「ONBUILD」で操作していく内容の全体像は、下図となります。順に操作しながら解説していきます。

ONBUILDを使ってみる①」では、まず、下図のオレンジの枠のところを作成していきます。

  • 「base-image」を作成するための「Dockerfile.base」の作成
  • 「whale-image」を作成するための「Dockerfile」の作成
  • 「開発環境のページ」を構成する「Webコンテンツ」の作成

準備

不要なコンテナとイメージの一括削除

 不要となったコンテナとイメージを一括削除するために「docker system prune」コマンドを実行します。

「docker system prune -a」は、全ての未使用のDockerオブジェクトを削除するためのコマンドです。

・「docker system prune -a」コマンドを実行します。

「Are you sure you want to continue? [y/N]」の質問には「y」と入力します。

PS C:\Users\joeac> docker system prune -a
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y
Deleted Containers:
27f3be8f93a06fecc11d45074e2ae426e3dcc0224596dd40e9153c6ad017e4e8

Deleted Images:
untagged: webserver1:latest
deleted: sha256:27fd964f8cd997c5aa3bd8d71e95055168c8f69b72f92710b6afec93f0edf32c

Deleted build cache objects:
lf0lhx165c8rafuacuoll7a99
lr48g68k66eus65qfrawtw0ae
3diux4tpi507wjvwsf8ype9v2
492eee34attjbzrptnn0gfi55
jid620sgccrj2wfnw7gxqddcn
waxz4h9x3pfx73x6ai9e3087b

Total reclaimed space: 105MB

ローカルにあるコンテナとイメージを以下のコマンドを実行して確認します。

  • 「docker container ls -a」コマンド
  • 「docker image ls」コマンド
PS C:\Users\joeac> docker container ls -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
PS C:\Users\joeac> docker image ls
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

コンテナとイメージが一括削除されていることが確認できます。

作業ディレクトリに移動

作業ディレクトリに移動します。

・「cd desktop/docker」と入力します。

PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker>

「Webserver2」ディレクトリを作成

 ONBUILDに用いる Dockerfile.base や Dockerfile などを格納する「Webserver2」ディレクトリを作成します。

・「mkdir Webserver2」コマンドを実行します。

「Webserver2」ディレクトリが作成されます。

PS C:\Users\joeac\Desktop\docker> mkdir Webserver2

    Directory: C:\Users\joeac\Desktop\docker

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2024/03/20    16:19                Webserver2

「Webserver2」ディレクトリに移動します。

・「cd Webserver2」と入力します。

PS C:\Users\joeac\Desktop\docker> cd Webserver2
PS C:\Users\joeac\Desktop\docker\Webserver2>

Dockerfile.baseの作成(base-image作成用)

「base-image」をビルドするための「Dockerfile.base」を作成します。

・「code Dockerfile.base」を実行します。

PS C:\Users\joeac\Desktop\docker\Webserver1> code Dockerfile.base

VS Codeが起動します。

・以下の内容を入力して保存します。

# Step1 : Ubuntuイメージの作成
FROM ubuntu:latest

# Step2 : nginxのインストール
RUN apt-get update && apt-get install -y -q nginx

# Step3 ... 80番ポートの公開
EXPOSE 80

# Step4 : Webコンテンツのコピー
ONBUILD ADD webcontent.tar /var/www/html

# Step5 : コマンドの実行(nginxの開始)
CMD ["nginx","-g","daemon off;"]

Dockerfileの作成(whale-image作成用)

「whale-image」をビルドするための「Dockerfile」を作成します。

・「code Dockerfile」を実行します。

PS C:\Users\joeac\Desktop\docker\Webserver1> code Dockerfile

VS Codeが起動します。

・以下の内容を入力して保存します。

# 「base-image」をベースにイメージを作成
FROM base-image

Webコンテンツの作成

Webコンテンツを作成します。

画像ファイルのダウンロード

・クジラのアイコンを下記リンクからダウンロードします。

ここでは、PNGファイルをダウンロードすることにします。

・ダウンロードしたクジラのアイコンのファイル名を「whale.png」に変更します。

・「whale.png」を「Webserver2」ディレクトリに保存します。

Topページの作成

index.html」を作成します。

・「code index.html」を実行します。

PS C:\Users\joeac\Desktop\docker\Webserver1> code index.html

VS Codeが起動します。

・以下の内容を入力して保存します。

<HTML>
<BODY>
<H1>Development environment</H1>
<BR>
<IMG src="whale.png">
</BODY>
</HTML>

「index.html」の表示

作成した「index.html」を表示して確認します。

・「index.html」をブラウザで表示します。

「index.html」をダブルクリックするなどして確認します。

上図のようにブラウザ表示されていれば、「index.html」が正しく作成されています。

ファイルの確認

「Webserver2」ディレクトリ内のファイルを確認します。

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

PS C:\Users\joeac\Desktop\docker\Webserver2> ls

    Directory: C:\Users\joeac\Desktop\docker\Webserver2

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2024/03/20    17:29             71 Dockerfile
-a---          2024/03/20    16:55            381 Dockerfile.base
-a---          2024/03/20    17:40             95 index.html
-a---          2024/03/20     3:05           4988 whale.png

この続きは「ONBUILDを使ってみる②」で解説していきます。

関連コンテンツ