Pregunta ¿Cómo eliminar una etiqueta de imagen en Docker sin eliminar la imagen en sí?


Digamos que quiero etiquetar una imagen de Docker y hacer un error tipográfico. ¿Cómo elimino la etiqueta sin eliminar la imagen? Ni las páginas de manual ni la documentación de Docker mencionan la eliminación de etiquetas.

docker tag 0e5574283393 my-imaj
docker tag 0e5574283393 my-image
# docker untag my-imaj # There is no "docker untag"!

91
2017-07-03 12:10


origen


Para aquellos que quieren desmarcar <none>imágenes etiquetadas como foo/bar:<none>: utilizar docker images --digests y docker rmi foo/bar@<digest> como se describe en success.docker.com/KBase/… - Janaka Bandara


Respuestas:


Si su imagen está etiquetada con más de una etiqueta, entonces docker rmi eliminará la etiqueta, pero no la imagen.

Así que en tu ejemplo ...

# docker rmi my-imaj

... eliminará esa etiqueta y dejará la imagen presente con la otra etiqueta correcta.


130
2017-07-03 12:42



Gracias. Ojalá lo mencionaran en la documentación: - / - Mihai
Maldita sea ... ¿cómo elimino la imagen a través de la etiqueta? :) - Alexander Mills
Sin embargo, si la etiqueta que estoy eliminando es la última, la imagen se eliminará. Así que me pregunto cuál es la respuesta a la pregunta en el tema? ¿Cómo elimino la etiqueta y mantengo la imagen en caché? - kub1x
Mi escenario es una imagen con una etiqueta: 1) Eliminar la etiqueta de la imagen, pero mantener la imagen en caché, sin etiquetas. 2) Ejecutar docker build Con la misma etiqueta, pero posiblemente diferente. Dockerfile. 3a) Si el Dockerfile no cambió, la imagen almacenada en caché se etiqueta de nuevo con la misma etiqueta. 3b) Si el Dockerfile cambió, la nueva imagen se etiqueta con la etiqueta original y la imagen antigua se eliminará usando docker image prune. - kub1x
Y la respuesta es como siempre. utilizar --help, no seas perezoso para leer docker image remove --no-prune.. en caso de que alguien esté interesado. - kub1x


Solo corre docker rmi my-image:0e5574283393. Esto eliminará la etiqueta.


12
2017-07-03 12:35



blog.tmtk.net/2013/09/16/how_to_remove_tag_on_docker.html. Esto puede proporcionarle más ayuda - ashishjain


A partir de un repositorio de docker vacío, importe una imagen escribiendo:

#docker run hello-world

Ejecutar el docker images comando para enumerar las imágenes. El resultado debería verse así:

REPOSITORY        TAG           IMAGE ID          CREATED           SIZE
hello-world       latest        7bc42cc48a84      4 weeks ago       316MB

Ahora vamos a crear una etiqueta de imagen llamada v1 ejecutando el docker tag mando:

#docker tag hello-world:latest hello-world:v1

Si corremos el docker images comando veremos nuestra nueva etiqueta como esta:

REPOSITORY        TAG           IMAGE ID          CREATED           SIZE
hello-world       latest        7bc42cc48a84      4 weeks ago       316MB
hello-world         v1          7bc42cc48a84      4 weeks ago       316MB

Para eliminar una etiqueta específica (para responder a la pregunta original), ejecute el docker rmi hello-world:v1 dónde v1 es el nombre de la etiqueta. La salida se verá así:

#docker rmi hello-world:v1
Untagged: hello-world:v1

Ejecutar el docker images comando para enumerar las imágenes. Observe que la etiqueta de imagen se ha eliminado:

REPOSITORY        TAG           IMAGE ID          CREATED           SIZE
hello-world       latest        7bc42cc48a84      4 weeks ago       316MB

4
2018-05-12 16:01



El enfoque menos ambiguo aunque 3 años después. +1 - bvj


Etiquete otra imagen con su nombre de etiqueta y luego su etiqueta de su imagen actual será eliminada.


0
2017-10-05 15:35



Bienvenido a ServerFault! Por favor, aclarar o agregar algunos pasos de ejemplo de comando. Echa un vistazo a la guía aquí: serverfault.com/help/how-to-answer - Cory Knutson