criar várias imagens do docker de tags

147

docker pull ubuntu obterá várias tags de imagens.

É possível criar várias tags por um Dockerfile como o ubuntu?

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

Aqui, o que eu exigi são as tags para diferentes conteúdos. (Não é o mesmo conteúdo com várias tags de alias)

Daniel YC Lin
fonte
1
Pergunta relacionada: stackoverflow.com/questions/22080706/…
Mark Butler

Respostas:

79

Você não pode criar tags com Dockerfiles, mas pode criar várias tags em suas imagens através da linha de comando.

Use isso para listar seus IDs de imagem:

$ docker images

Depois, remova:

$ docker tag 9f676bd305a4 ubuntu:13.10
$ docker tag 9f676bd305a4 ubuntu:saucy
$ docker tag eb601b8965b8 ubuntu:raring
...
David Braun
fonte
4
O ponto principal está no Dockerfile, esses comandos não puderam ser gravados no Dockerfile.
21914 Daniel YC Lin
1
Veja esta resposta de uma maneira que evite ter que descobrir manualmente o ID.
Jonathon Reinhart
436

Desde a versão 1.10 , agora você pode adicionar várias tags ao mesmo tempo no build:

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

Fonte: adicione a capacidade de adicionar várias tags com o docker build

Marc Perrin-Pelletier
fonte
5
Eu acho que esta é a resposta mais correta para facilidade de uso em um processo de construção
brasskazoo
Isso não é apropriado, porque a tag do ubuntu para uma versão diferente, o conteúdo é diferente.
Daniel YC Lin
2
Como faço para que essas tags apareçam no repositório após um push? Infelizmente, apenas o que eu uso no comando push aparece no repositório.
precisa saber é o seguinte
3
Mesmo no final de 2018, o Docker ainda é incrivelmente imaturo a esse respeito, cada 'tag' ainda deve ser pressionada separadamente, apesar de estar anexada à mesma imagem. O que é necessário aqui é um recurso semelhante às tags Git.
Ed Randall
-8

Como não fazer:

Ao criar uma imagem, você também pode marcá-la dessa maneira.

docker build -t ubuntu:14.04 .

Então você constrói novamente com outra tag:

docker build -t ubuntu:latest .

Se o seu Dockerfile faz bom uso do cache, a mesma imagem deve sair e efetivamente faz o mesmo que marcar novamente a mesma imagem. Se você o fizer docker images, verá que eles têm o mesmo ID.

Provavelmente, há um caso em que isso dá errado ... Mas, como o @ david-braun disse, você não pode criar tags com os próprios Dockerfiles, apenas com o comando docker.

mandioca
fonte
3
Devo acrescentar que fazê-lo como @ david-braun é mais limpo.
mandioca
14
Não construa duas vezes. Veja esta resposta .
Jonathon Reinhart
construir duas vezes derrota a noção de CI / CD ... a segunda compilação pode ser diferente dependendo das dependências ... está tudo no tempo.
Richard
4
Com o cabeçalho claro 'Como não fazer', esta resposta agora acrescenta algo ao entendimento de como funciona.
Ed Randall #