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

とりあえずbuildしてみる

ここでは、とりあえず、Dockerfile を使って、Dockerイメージをビルドしてみます。

 最初に、必要なベースイメージをDocker Hubから取得して、次に、Dockerfileを作成し、イメージのビルド手順を定義します。その後、Dockerfileを元にイメージをビルドして、作成したイメージの確認を行います。

  • 作成するイメージ:ubuntu-echo
  • 最新のイメージで「 echo “Hello Ubuntu”」を実行する。

イメージの取得

まず、Docker Hub からイメージを取得します。

 イメージ名にタグを指定しない場合は、「:latest」が適用されるため、最新イメージを指定することになります。

・「docker image pull ubuntu」を実行します。

PS C:\Users\joeac> docker image pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
bccd10f490ab: Pull complete
Digest: sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

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

ubuntuイメージが取得できたかを確認します。

PS C:\Users\joeac> docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
ubuntu       latest    ca2b0f26964c   12 days ago   77.9MB

Dockerfileの作成

・作業ディレクトリ「desktop/docker」に移動します。

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

VSCodeでDockerfileを編集します。

・「code Dockerfile」と入力します。

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


VSCodeが起動します。

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

FROM ubuntu
CMD echo "Hello Ubuntu"

保存した内容を確認します。

・「cat Dockerfile」と入力します。

PS C:\Users\joeac\Desktop\docker> cat Dockerfile
FROM ubuntu
CMD echo "Hello Ubuntu"

Dockerfileの基本構造

【構文】
命令コード パラメータ

命令コードは、アルファベットの大文字で記述します。

用いた命令コードの意味は次の通りです。

  • FROM・・・ベースイメージを指定します。
  • CMD ・・・「docker image run」する際に実行されるコマンドです。

 FROMやCMD以外にも、命令コードがあります。以下の表は、一般的なDockerfileの命令をまとめたものです。

命令説明
FROMベースとなるDockerイメージを指定します。あ
RUNコマンドを実行し、新しいレイヤーを追加します。パッケージをコンテナにインストールするために使用されます。あ
CMDコンテナが起動されたときに実行されるデフォルトのコマンドを指定します。あ
LABELイメージに任意のメタデータ(ラベル)を追加します。あ
EXPOSEコンテナが使用するポートを外部に公開するためのメタデータを追加します。あ
ENV環境変数を設定します。あ
ADDファイルやディレクトリをコピーし、tarファイルを自動的に解凍します。a
COPYファイルやディレクトリをコピーします。a
ENTRYPOINTコンテナのエントリーポイントとなるコマンドを指定します。a
VOLUMEホストマシンとコンテナ間でデータを共有するためのマウントポイントを指定します。
WORKDIRコンテナ内の作業ディレクトリを指定します。
ARGビルド時に利用できる引数を指定します。a
Dockerfileの命令

これらの命令は、Dockerfile内で使用して、Dockerイメージのビルドプロセスを定義します。

イメージの生成

Dockerfileをもとに、Dockerイメージを作成(build)する際のコマンドは以下の通りです。

docker image build [オプション] Dockerfileへのパス

 例えば、以下のように指定します。「Dockerfile」というファイル名は指定しません。Dockerfileまでのパスを指定します。

docker image build -t ubuntu-echo .

「-t」はイメージ名・タグ名を指定するオプションです。

 最後に「.」があるので注意してください。「.」はカレントディレクトリに、「Dockerfile」という名称のDockerfileがあるという意味です。

・「docker image build -t ubuntu-echo .」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker> docker image build -t ubuntu-echo .
[+] Building 0.1s (5/5) FINISHED                                                                         docker:default
 => [internal] load build definition from Dockerfile                                                               0.0s
 => => transferring dockerfile: 73B                                                                                0.0s
 => [internal] load .dockerignore                                                                                  0.0s
 => => transferring context: 2B                                                                                    0.0s
 => [internal] load metadata for docker.io/library/ubuntu:latest                                                   0.0s
 => [1/1] FROM docker.io/library/ubuntu                                                                            0.0s
 => exporting to image                                                                                             0.0s
 => => exporting layers                                                                                            0.0s
 => => writing image sha256:9a9568f10c243fe5494ae055466dfb32a286395bd65a78c14d860d6631c24af3                       0.0s
 => => naming to docker.io/library/ubuntu-echo

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

PS C:\Users\joeac\Desktop\docker> docker image ls
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
ubuntu        latest    ca2b0f26964c   13 days ago   77.9MB
ubuntu-echo   latest    9a9568f10c24   13 days ago   77.9MB

作成したイメージの実行

・「docker container run ubuntu-echo」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker> docker container run ubuntu-echo
Hello Ubuntu

「Hello Ubuntu」と表示されます。