Docker build コマンド

 Docker 命令大全Docker コマンド大全


docker buildこのコマンドは、Dockerfile から Docker イメージを構築するために使用します。

docker buildこのコマンドは、Dockerfile 内で定義された命令を読み取り、段階的にイメージを構築し、最終結果をローカルイメージライブラリに保存します。

構文

docker build [OPTIONS] PATH | URL | -
  • PATH: Dockerfile を含むディレクトリパスまたは.(現在のディレクトリ)。
  • URL: Dockerfile を含むリモートリポジトリのアドレス(Git リポジトリなど)を指します。
  • -: 標準入力から Dockerfile を読み取ります。

一般的なオプション:

  • -t, --tag: 構築するイメージに名前とタグを指定します。
  • -f, --file: Dockerfile のパスを指定します(デフォルトはPATH配下のDockerfile)。
  • --build-arg: ビルド引数を設定します。
  • --no-cache: キャッシュ層を使用せずにイメージを構築します。
  • --rm: 構築成功後に中間コンテナを削除します(デフォルトで有効)。
  • --force-rm: 構築の成功・失敗に関係なく、中間コンテナを削除します。
  • --pull: 常にレジストリから最新のベースイメージをプルしようとします。

その他のオプションの説明:

  • --build-arg=[]: イメージ構築時の変数を設定します。
  • --cpu-shares: CPU 使用の重みを設定します。
  • --cpu-period: CPU CFS 周期を制限します。
  • --cpu-quota: CPU CFS クォータを制限します。
  • --cpuset-cpus: 使用可能な CPU ID を指定します。
  • --cpuset-mems: 使用可能なメモリノード ID を指定します。
  • --disable-content-trust: コンテンツトラスト検証を無視します(デフォルトで有効)。
  • -f: Dockerfile のパスを指定します。
  • --force-rm: 構築プロセス中は中間コンテナを強制的に削除します。
  • --isolation: 指定されたコンテナ分離テクノロジーを使用します。
  • --label=[]: イメージのメタデータを設定します。
  • -m: メモリの最大値を設定します。
  • --memory-swap: スワップ領域の最大値を設定します(メモリ + スワップ領域)。-1スワップ領域を制限しないことを示します。
  • --no-cache: イメージ構築時にキャッシュを使用しません。
  • --pull: ベースイメージの最新バージョンをプルしようとします。
  • --quiet, -q: クワイエットモード。構築成功後にはイメージ ID のみを出力します。
  • --rm: 構築成功後に中間コンテナを削除します(デフォルトで有効)。
  • --shm-size: 設定する/dev/shmサイズのデフォルト値は 64M です。
  • --ulimit: Ulimit 構成を設定します。
  • --squash: Dockerfile 内のすべてのステップを 1 つのレイヤーに圧縮します。
  • --tag, -t: イメージに名前とタグを指定します。形式はname:tag 或 name;1 回の構築で 1 つのイメージに複数のタグを設定できます。
  • --network: 構築中に設定するRUN命令のネットワークモード。デフォルトはdefault。

1、イメージの構築

docker build -t myimage:latest .

これにより、現在のディレクトリから Dockerfile を読み取り、myimage:latest という名前のイメージを構築します。

2、Dockerfile パスの指定

docker build -f /path/to/Dockerfile -t myimage:latest .

これにより、/path/to/ ディレクトリから Dockerfile を読み取り、myimage:latest という名前のイメージを構築します。

3、ビルド引数の設定

docker build --build-arg HTTP_PROXY=http://proxy.example.com -t myimage:latest .

これにより、構築プロセス中に HTTP_PROXY 環境変数が使用されます。

4、キャッシュ層を使用せずにイメージを構築する

docker build --no-cache -t myimage:latest .

これにより、イメージ構築時にすべてのキャッシュ層が無視され、すべてのステップが必ず再実行されます。

例 - Dockerfile を使用してイメージを構築する

1、Dockerfile を作成します。内容は次のとおりです:

# Dockerfile 示例
FROM ubuntu:20.04
LABEL maintainer="[email protected]"
RUN apt-get update && apt-get install -y nginx
COPY index.html /var/www/html/index.html
CMD ["nginx", "-g", "daemon off;"]

2、イメージの構築

docker build -t mynginx:latest .

出力例:

Sending build context to Docker daemon  3.072kB
Step 1/5 : FROM ubuntu:20.04
20.04: Pulling from library/ubuntu
...
Step 2/5 : LABEL maintainer="[email protected]"
...
Step 3/5 : RUN apt-get update && apt-get install -y nginx
...
Step 4/5 : COPY index.html /var/www/html/index.html
...
Step 5/5 : CMD ["nginx", "-g", "daemon off;"]
...
Successfully built 123456789abc
Successfully tagged mynginx:latest

3、イメージの検証

docker images

出力例:

注意事項

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
mynginx      latest    123456789abc   10 minutes ago   200MB
  • Dockerfile の構文が正しいことを確認し、各ステップを順番に実行してください。
  • 使用.dockerignoreファイルは不要なファイルとディレクトリを除外し、ビルドコンテキストのサイズを減らします。
  • Dockerfile 内で機密情報(パスワード、キーなど)を公開しないでください。
  • このコマンドは Docker イメージを構築するための中心的なツールです。明確な Dockerfile を定義することで、アプリケーションの実行環境と依存関係を自動的に構築できます。使用時には、オプションを適切に設定し、Dockerfile を最適化して、ビルド効率とイメージ品質を向上させてください。

docker buildDocker コマンド大全


 Docker 命令大全その他の拡張

AI 思考中...