複数のタグDockerイメージを作成する


147

docker pull ubuntu 複数のタグ画像を取得します。

Ubuntuのように1つのDockerfileで複数のタグを作成することは可能ですか?

ubuntu                  13.10               9f676bd305a4        2 weeks ago         182.1 MB
ubuntu                  saucy               9f676bd305a4        2 weeks ago         182.1 MB
ubuntu                  raring              eb601b8965b8        2 weeks ago         170.2 MB
ubuntu                  13.04               eb601b8965b8        2 weeks ago         170.2 MB
ubuntu                  12.10               5ac751e8d623        2 weeks ago         161.4 MB
ubuntu                  quantal             5ac751e8d623        2 weeks ago         161.4 MB
ubuntu                  10.04               9cc9ea5ea540        2 weeks ago         183 MB
ubuntu                  lucid               9cc9ea5ea540        2 weeks ago         183 MB
ubuntu                  12.04               9cd978db300e        2 weeks ago         204.7 MB
ubuntu                  latest              9cd978db300e        2 weeks ago         204.7 MB
ubuntu                  precise             9cd978db300e        2 weeks ago         204.7 MB

ここで必要なのは、さまざまなコンテンツのタグです。(複数のエイリアスタグがある同じコンテンツではありません)


回答:


79

Dockerfileを使用してタグを作成することはできませんが、コマンドラインを使用してイメージに複数のタグを作成できます。

これを使用して、イメージIDをリストします。

$ docker images

次にタグを付けます:

$ docker tag 9f676bd305a4 ubuntu:13.10
$ docker tag 9f676bd305a4 ubuntu:saucy
$ docker tag eb601b8965b8 ubuntu:raring
...

4
主なポイントはDockerfileにあり、これらのコマンドをDockerfileに書き込むことができませんでした。
Daniel YC Lin

1
IDを手動で把握する必要がないようにする方法については、この回答を参照してください。
Jonathon Reinhart、2015

436

1.10リリース以降、ビルド時に複数のタグを一度に追加できるようになりました。

docker build -t name1:tag1 -t name1:tag2 -t name2 .

ソース:Dockerビルドで複数のタグを追加する機能を追加


5
これは、ビルドプロセスでの使いやすさのより正しい答えだと思います
brasskazoo

これは適切ではありません。ubuntuのタグはバージョンが異なるため、内容が異なるためです。
ダニエルYCリン

2
これらのタグをプッシュ後にリポジトリに表示するにはどうすればよいですか?残念ながら、pushコマンドで使用するものだけがリポジトリに表示されます。
チェコ語2018

3
2018年の終わりでも、Dockerはまだこの点で信じられないほど未熟です。同じイメージに添付されているにもかかわらず、各「タグ」は引き続き個別にプッシュする必要があります。ここで必要なのは、Gitタグに似た機能です。
Ed Randall

-8

それをしない方法:

画像を作成するときは、この方法でタグを付けることもできます。

docker build -t ubuntu:14.04 .

次に、別のタグを使用して再度ビルドします。

docker build -t ubuntu:latest .

場合は、あなたのDockerfileは、キャッシュの有効利用を行い、同じ画像が出てくる必要があり、それが効果的に同じ画像を再タグ付けと同じでありません。あなたが行う場合docker images、あなたは彼らが同じIDを持っていることがわかります。

おそらくこれがうまくいかない場合があります...しかし、@ david-braunが言ったように、Dockerfileだけでタグを作成することはできません。


3
@ david-braunのようにすればよりクリーンになると付け加えます。
キャッサバ

14
2度ビルドしないでください。この回答を参照してください。
Jonathon Reinhart、2015

2回ビルドすると、CI / CDの概念が無効になります... 2番目のコンパイルは、依存関係によって異なる場合があります...すべてのタイミングです。
リチャード

4
「どうやってやらないか」という見出しが付いているので、この答えは、それがどのように機能するかについての理解に何かを追加します。
エド・ランドール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.