[Docker]イメージのビルド

Dockerfileの作成方法。

大まかなコンテナ構築手順

一般的な簡単なコンテナ構築手順は以下である。

  1. Dockerfileを作成する
  2. イメージをビルドする ←今回はこちら
  3. コンテナを起動/停止する
  4. コンテナへアクセスする
  5. コンテナ/イメージを削除する

イメージのビルド方法

作成したDockerfile使い、イメージをビルドする。

Dockerfileと同じディレクトリで以下のコマンドを実行する。

docker build .

イメージ名:タグを指定する場合は、以下。

docker build . -t イメージ名:タグ

この際、イメージをネットワーク経由で持ってくるので、ネットワーク接続状態である必要がある。

ビルド後、以下でビルドされたイメージを確認できる。

docker images

実際にビルドしてみる

イメージ名とタグを指定してビルド。

 $ ls -ltr Dockerfile 
-rw-r--r--@ 1 kazuoji  staff  282 Sep  1 00:47 Dockerfile
 $
 $ docker build . -t mypythonimage:1.0  
(省略)                                                                        0.0s
[+] Building 78.8s (10/10) FINISHED                                                        docker:desktop-linux
 => [internal] load build definition from Dockerfile                                                       0.0s
 => => transferring dockerfile: 368B                                                                       0.0s 
 => [internal] load metadata for docker.io/library/python:latest                                           1.6s
 => [internal] load .dockerignore                                                                          0.0s 
 => => transferring context: 2B                                                                            0.0s
 => [1/6] FROM docker.io/library/python:latest@sha256:e3d5b6f95ce66923b5e48a06ee5755abb097de96a8617c3f2f  47.0s 
 => => resolve docker.io/library/python:latest@sha256:e3d5b6f95ce66923b5e48a06ee5755abb097de96a8617c3f2f7  0.0s
 => => sha256:1593650c75729f64218ae272e8ffff9da7bbba9599bd1815877da99a2651fd9b 23.59MB / 23.59MB           5.2s 
 => => sha256:7eaa3d3233e0d4059733827bae5864c478dc008e27fc88f36b01c6bc069b3dd3 7.05kB / 7.05kB             0.0s
 => => sha256:7b24851aa36de07cd94173b8e2052846573dacc3b241620d713254e647352394 49.59MB / 49.59MB          13.2s 
 => => sha256:275677961327bd0cf394699228e29d7caf27f171c627899a20ebc9eeb550e209 63.99MB / 63.99MB          20.6s
 => => sha256:e3d5b6f95ce66923b5e48a06ee5755abb097de96a8617c3f2f7d431d48e63d35 9.72kB / 9.72kB             0.0s 
 => => sha256:cf50dada752eced11f6baf7d91b14a255bc4605d0c48da8f8153c4a11af3b657 2.52kB / 2.52kB             0.0s
 => => sha256:b46e144614e1ae9b82b5d89d16a31a506542733eabceebfac041e0192dfafcf4 202.62MB / 202.62MB        34.4s 
 => => sha256:83027d49da50d117c2a9796513cc31a82b8c8dc2d21e16d0d6331a41d27fc9d3 6.24MB / 6.24MB            16.5s
 => => extracting sha256:7b24851aa36de07cd94173b8e2052846573dacc3b241620d713254e647352394                  3.6s 
 => => sha256:1cdb3b57ff646d36a5950d7f58f59e06f1749e02f34b05e1ac359de4367319ca 21.95MB / 21.95MB          23.2s
 => => extracting sha256:1593650c75729f64218ae272e8ffff9da7bbba9599bd1815877da99a2651fd9b                  0.7s 
 => => extracting sha256:275677961327bd0cf394699228e29d7caf27f171c627899a20ebc9eeb550e209                  3.1s
 => => sha256:976c0d6bd9e7442c342d1230988c40f24001c6e0f57aa86227dc9b4c3aacc553 232B / 232B                20.9s 
 => => sha256:b055fafe00918b3741b612d20235ae925264491dd3be66279b946db3f12df317 3.90MB / 3.90MB            22.9s
 => => extracting sha256:b46e144614e1ae9b82b5d89d16a31a506542733eabceebfac041e0192dfafcf4                 10.7s 
 => => extracting sha256:83027d49da50d117c2a9796513cc31a82b8c8dc2d21e16d0d6331a41d27fc9d3                  0.3s
 => => extracting sha256:1cdb3b57ff646d36a5950d7f58f59e06f1749e02f34b05e1ac359de4367319ca                  0.9s
 => => extracting sha256:976c0d6bd9e7442c342d1230988c40f24001c6e0f57aa86227dc9b4c3aacc553                  0.0s
 => => extracting sha256:b055fafe00918b3741b612d20235ae925264491dd3be66279b946db3f12df317                  0.4s
 => [2/6] RUN apt-get update                                                                               3.7s
 => [3/6] RUN apt-get -y install locales &&     localedef -f UTF-8 -i ja_JP ja_JP.UTF-8                    7.1s
 => [4/6] RUN apt-get install -y vim                                                                       3.4s
 => [5/6] RUN pip install --upgrade pip                                                                    2.1s
 => [6/6] RUN python -m pip install numpy pandas                                                          12.9s
 => exporting to image                                                                                     0.8s
 => => exporting layers                                                                                    0.7s
 => => writing image sha256:e0f51fa89a90d413a3ddea4e49825ab8c19fd49356d194b3ce2ac5918fff3da6               0.0s
 => => naming to docker.io/library/mypythonimage:1.0      

ビルドされたイメージを確認。

$ docker images
REPOSITORY      TAG       IMAGE ID       CREATED         SIZE
mypythonimage   1.0       e0f51fa89a90   3 minutes ago   1.33GB

指定したイメージ名とタグでビルドされていることがわかる。

以上でイメージのビルドは終了。

次はビルドしたイメージを使ってコンテナを起動する手順を実施する。