Docker build コマンド
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 コマンド大全
AI 思考中...
Docker コマンド大全