カスタム画像を作成するときに、次のように画像名を設定できます。
docker build -t dude/man:v2 . # Will be named dude/man:v2
Dockerfileでイメージの名前を定義する方法はありますか。そのため、docker build
コマンドでそれを言及する必要はありませんか。
Dockerfile内では画像のタグ付けはサポートされていません。これはビルドコマンドで行う必要があります。回避策として、ターゲットのイメージ名を特定するdocker-compose.ymlを使ってビルドしてからdocker-compose build
を実行することができます。 docker-compose.ymlのサンプルは以下のようになります。
version: '2'
services:
man:
build: .
image: dude/man:v2
そうは言っても、composeを使ってビルドを行うことにはプッシュがあります。これはswarmモードのデプロイではうまくいかないからです。質問で指定したとおりにコマンドを実行します。
docker build -t dude/man:v2 .
個人的には、私は自分のフォルダ(build.sh)に小さなシェルスクリプトを使って構築する傾向があります。これは引数を渡し、そこにある画像の名前を含めて入力を節約します。プロダクションの場合、ビルドはパイプラインスクリプト内にイメージ名を持つci/cdサーバによって処理されます。
Ymlファイルを使用せずにカスタム名で画像を作成する方法:
docker build -t image_name .
カスタム名でコンテナを実行する方法:
docker run -d --name container_name image_name
特定のdockerファイルを参照する必要がある場合は、これが別のバージョンです。
version: "3"
services:
nginx:
container_name: nginx
build:
context: ../..
dockerfile: ./docker/nginx/Dockerfile
image: my_nginx:latest
それならあなたは走るだけです
docker-compose up --build