web-dev-qa-db-ja.com

Dockerの「最新の」タグ付けとプッシュ

ビルドプロセスから生成されたDockerイメージがあります。最新のビルドイメージにタグビルドIDと「latest」のタグを付けたいと思っています。これを行うには2つの方法があります。

最初のアプローチ-(複数のタグを追加して1回プッシュ)

docker tag <id> <user>/<image>:build_id  
docker tag <id> <user>/<image>:latest  
docker Push <user>/<image>

2番目-個別にタグ付けしてプッシュ

docker tag <id> <user>/<image>:build_id  
docker Push <user>/<image>:build_id

docker tag <id> <user>/<image>:latest  
docker Push <user>/<image>:latest

Dockerのドキュメントには、レジストリに特定のタグが付いたイメージが既にある場合、同じタグが付いた新しいイメージを使用してdocker Pushを実行すると、以前のイメージが上書きされると記載されています。

  1. 上記で指定した第1オプションと第2オプションはどちらも機能的に同じですか?
  2. 推奨される方法/ベストプラクティスはありますか?
7
Sandesh

まず第一に

docker Pushは、リポジトリ名を指定しないと機能しません。

docker Push
"docker Push" requires exactly 1 argument.
See 'docker Push --help'.

Usage:  docker Push [OPTIONS] NAME[:TAG] [flags]

Push an image or a repository to a registry

つまり、リポジトリ名でプッシュする必要があります。また、TAGを提供することも提供しないこともできます。

TAGを指定しない場合は、そのリポジトリのすべてのイメージをプッシュしています。

質問修正後

最初のアプローチでは、すべてのイメージを<user>/<image>リポジトリの下にプッシュします。

2番目のアプローチでは、画像を1つずつプッシュしています。

質問の回答

_ 1。上記で指定された最初と2番目のオプションは両方とも機能的に同じです(あなたの場合)

TAGを指定しない場合は、そのリポジトリのすべてのイメージをプッシュしています。

あなたの場合

$ docker Push <user>/<image>

tAG build_idlatestの両方をプッシュします

_ 2。私は、2番目のオプションの方が優れていると思います

なぜなら、すべての画像をプッシュしたくない場合があるからです。その場合、2番目のアプローチに従ってプッシュする画像を選択できます。

5