Como remover uma marca de imagem no Docker sem remover a própria imagem?

134

Digamos que eu queira marcar uma imagem do Docker e digitar um erro de digitação. Como removo a tag sem remover a própria imagem? Nem as páginas de manual nem a documentação do Docker mencionam a remoção de tags.

docker tag 0e5574283393 my-imaj
docker tag 0e5574283393 my-image
# docker untag my-imaj # There is no "docker untag"!
Mihai
fonte
4
Para aqueles que querem desmarcar <none>imagens tagged como foo/bar:<none>: uso docker images --digestse docker rmi foo/bar@<digest>como descrito no success.docker.com/KBase/...
Janaka Bandara

Respostas:

194

Se sua imagem estiver marcada com mais de uma tag, ela docker rmiserá removida, mas não a imagem.

Então, no seu exemplo ...

# docker rmi my-imaj

... removerá essa tag e deixará a imagem presente com a outra tag correta.

Richard Corfield
fonte
4
Obrigado. Eu gostaria que eles mencionassem isso na documentação: - /
Mihai
2
Se a tag que estou removendo for a última, a imagem será removida. Então, eu me pergunto qual é a resposta para a pergunta no tópico? Como removo a tag e mantenho a imagem em cache?
kub1x
4
E a resposta é como sempre use--help , não tenha preguiça de ler. docker image remove --no-prune.. caso alguém esteja interessado.
kub1x
4
Isso é falso, simplesmente removeu minha imagem. Felizmente, sabendo que o docker eu já estava desconfiado e criei um backup antes com docker save.
user259412
2
@ Peter A resposta afirma claramente If your image is tagged with more than one tag..., mas deve ser atualizada com o comando dos comentários que explica como remover a última tag sem remover a imagem.
BrainSlugs83 20/07
18

Execute docker rmi REPOSITORY:TAGpara remover a marca.

Os valores REPOSITORYe TAGvêm da docker imagessaída.

Por exemplo

$ docker rmi my-image:0e5574283393
Untagged: my-image:0e5574283393
ashishjain
fonte
blog.tmtk.net/2013/09/16/how_to_remove_tag_on_docker.html . Isso pode lhe fornecer mais ajuda
ashishjain
17

A partir de um repositório de janela de encaixe vazio, importe uma imagem digitando:

#docker run hello-world

Execute o docker imagescomando para listar as imagens. O resultado deve ficar assim:

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

Agora vamos criar uma tag de imagem chamada v1 executando o docker tagcomando:

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

Se executarmos o docker imagescomando, veremos nossa nova tag assim:

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

Para excluir uma tag específica (para responder à pergunta original), execute o docker rmi em hello-world:v1que v1 é o nome da tag. A saída terá a seguinte aparência:

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

Execute o docker imagescomando para listar as imagens. Observe que a tag da imagem foi removida:

REPOSITORY        TAG           IMAGE ID          CREATED           SIZE
hello-world       latest        7bc42cc48a84      4 weeks ago       316MB
Travis Rennemann
fonte
A abordagem menos ambígua, embora três anos depois. 1
bvj
0

Marque outra imagem com o seu nome e depois a sua imagem atual será removida.

Nikolay
fonte
Bem-vindo ao ServerFault! Esclareça ou adicione algumas etapas de exemplo de comando. Confira o guia aqui: serverfault.com/help/how-to-answer
Cory Knutson
Não é uma resposta útil, se a tag for um erro de digitação, conforme indicado, você também não a desejaria em outra imagem.
Ken Williams