dockerのbuildコマンドのオプション一覧
dockerのbuildコマンドについて詳しく解説します。 dockerのイメージはDockerfileによって定義されますが、buildコマンドのオプションによってコントロールできます。
- dockerのbuildコマンドのオプション一覧
- docker build -t, --tag=[]オプション
- --build-arg=[]:Dockerfileの変数に変更を加える
- docker build --rmオプション
Docker入門 関連記事
docker build -t, --tag=[]
オプション
Dockerのdocker build -t
または--tag
オプションは、ビルドされたイメージにタグを付けるために使用されます。イメージには、複数のタグを付けることができます。
-t
または--tag
オプションを使用するには、次のようにコマンドを実行します。
$ docker build -t <TAG_NAME> <DOCKERFILE_DIRECTORY>
ここで、<TAG_NAME>
はビルドされたイメージに付けるタグ名です。<DOCKERFILE_DIRECTORY>
はDockerfileがあるディレクトリのパスです。
例えば、次のコマンドを実行すると、ビルドされたイメージにmyimage:latest
というタグが付けられます。
$ docker build -t myimage:latest .
-t
または--tag
オプションを複数回使用することで、複数のタグを同時にイメージに付けることができます。例えば、次のコマンドを実行すると、ビルドされたイメージにmyimage:latest
とmyimage:v1.0
という2つのタグが付けられます。
$ docker build -t myimage:latest -t myimage:v1.0 .
タグの指定方法は<TAG_NAME>
の他に、<REGISTRY_URL>/<REPOSITORY_NAME>:<TAG_NAME>
のように、リポジトリ名やレジストリURLを含めて指定することもできます。例えば、次のコマンドはmy-registry.com/myrepository:latest
というタグを付けたイメージをビルドします。
$ docker build -t my-registry.com/myrepository:latest .
dockerのrunでタグを指定する方法
Dockerのrun
コマンドで、イメージにタグを指定するには、以下のように<イメージ名>:<タグ名>
の形式で指定します。
通常、runコマンドではコンテナIDを指定することもできます。加えて、runコマンド実行時にはbuildの際に-t
フラグでつけられたイメージタグを指定してコンテナとして実行することができます。
$ docker run <イメージ名>:<タグ名>
例えば、build時のフラグとして-t
を指定したとします。
docker image build -t flask .
この時に先ほど作成した、flaskイメージコンテナをrunする場合、特にフラグを使わずにタグを入力することで実行できます。
docker run -it -p 80:80 -v ./code:/code flask bash
--build-arg=[]
:Dockerfileの変数に変更を加える
Dockerのdocker build --build-arg=[]
オプションは、ビルド時にDockerfile内で変数に変更を加えます
--build-arg
オプションを使用するには、Dockerfile内でARG
命令を使用して変数を定義する必要があります。例えば、以下のようなDockerfileがあるとします。
FROM ubuntu:latest ARG ENVIRONMENT ENV ENVIRONMENT ${ENVIRONMENT} CMD ["echo", "Current environment: $ENVIRONMENT"]
このDockerfileは、ENVIRONMENT
という環境変数を定義し、CMD
命令でその値を使用しています。
--build-arg
オプションを使用してビルド時に値を渡すには、次のようにコマンドを実行します。
$ docker build --build-arg ENVIRONMENT=production -t myimage .
この例では、ENVIRONMENT
変数にproduction
という値を渡しています。ビルドが完了すると、myimage
という名前のイメージが作成されます。
ビルド時に複数の環境変数を渡す場合は、--build-arg
オプションを複数回使用することができます。例えば、次のように書きます。
$ docker build --build-arg ENVIRONMENT=production --build-arg PORT=8080 -t myimage .
この例では、ENVIRONMENT
変数にproduction
、PORT
変数に8080
という値を渡しています。
docker build --rm
オプション
Dockerのdocker build --rm=true
オプションは、ビルド時に一時的に作成されたコンテナを自動的に削除するために使用されます。
--rm
オプションを使用すると、ビルド完了後に使用された中間コンテナが自動的に削除され、ホストマシンのストレージスペースを解放することができます。これにより、不要なイメージやコンテナが蓄積されることを防止できます。
--rm=true
オプションを使用してビルドを実行するには、次のようにコマンドを実行します。
$ docker build --rm=true -t <IMAGE_NAME> <DOCKERFILE_DIRECTORY>
ここで、<IMAGE_NAME>
はビルドされたイメージの名前、<DOCKERFILE_DIRECTORY>
はDockerfileがあるディレクトリのパスです。このコマンドを実行すると、ビルドが開始され、ビルドに必要な一時的なコンテナが作成されます。ビルドが完了すると、中間コンテナが自動的に削除され、イメージが作成されます。
--rm
オプションはデフォルトでtrue
に設定されており、--rm=false
のように明示的に指定しなくても中間コンテナを残すことができます。ただし、中間コンテナを残した場合は、後で手動で削除する必要があります。