crear una imagen de etiqueta múltiple

147

docker pull ubuntu obtendrá múltiples imágenes de etiquetas.

¿Es posible crear múltiples etiquetas por un Dockerfile como 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

Aquí, lo que requiero son las etiquetas para diferentes contenidos. (No es el mismo contenido con varias etiquetas de alias)

Daniel YC Lin
fuente
1
Pregunta relacionada: stackoverflow.com/questions/22080706/…
Mark Butler

Respuestas:

79

No puede crear etiquetas con Dockerfiles, pero puede crear varias etiquetas en sus imágenes a través de la línea de comandos.

Use esto para enumerar sus identificadores de imagen:

$ docker images

Luego etiqueta:

$ docker tag 9f676bd305a4 ubuntu:13.10
$ docker tag 9f676bd305a4 ubuntu:saucy
$ docker tag eb601b8965b8 ubuntu:raring
...
David Braun
fuente
44
El punto principal está en Dockerfile, estos comandos no se pudieron escribir en Dockerfile.
Daniel YC Lin
1
Vea esta respuesta para una manera que evita tener que descifrar manualmente la ID.
Jonathon Reinhart
437

Desde la versión 1.10 , ahora puede agregar varias etiquetas a la vez en la compilación:

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

Fuente: Agregar capacidad para agregar múltiples etiquetas con Docker Build

Marc Perrin-Pelletier
fuente
55
Creo que esta es la respuesta más correcta para la facilidad de uso en un proceso de construcción
brasskazoo
Esto no es correcto, ya que la etiqueta de ubuntu para diferentes versiones, el contenido es diferente.
Daniel YC Lin
2
Sin embargo, ¿cómo hago para que estas etiquetas aparezcan en el repositorio después de una inserción? Desafortunadamente, solo el que uso en el comando push aparece en el repositorio.
Czechnology
44
Incluso a finales de 2018 acoplable es todavía muy inmaduro en este sentido, cada una 'etiqueta' debe todavía ser empujado por separado a pesar de estar conectado a la misma imagen. Lo que se requiere aquí es alguna capacidad similar a las etiquetas Git.
Ed Randall
-8

Cómo no hacerlo:

Al crear una imagen, también puede etiquetarla de esta manera.

docker build -t ubuntu:14.04 .

Luego lo construyes de nuevo con otra etiqueta:

docker build -t ubuntu:latest .

Si su Dockerfile hace un buen uso de la memoria caché, debería aparecer la misma imagen y efectivamente hace lo mismo que volver a etiquetar la misma imagen. Si lo hacesdocker images , verá que tienen la misma identificación.

Sin embargo, probablemente haya un caso en el que esto salga mal ... Pero como dijo @ david-braun, no se pueden crear etiquetas con Dockerfiles, solo con el comando docker.

mandioca
fuente
3
Debo agregar que hacerlo como @ david-braun es más limpio.
mandioca
14
No construyas dos veces. Mira esta respuesta .
Jonathon Reinhart
construir dos veces derrota la noción de CI / CD ... la segunda compilación podría ser diferente dependiendo de las dependencias ... todo está en el momento.
Richard
44
Con el claro encabezado 'Cómo no hacerlo', esta respuesta ahora agrega algo a la comprensión de cómo funciona.
Ed Randall