Quero remover o contêiner no Docker, mas ocorre um erro quando você deseja excluir
Minha próxima etapa antes de remover o contêiner, veja a lista de contêineres existentes
sts@Yudi:~/docker$ sudo docker ps -as
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
78479ffeba5c ubuntu "/bin/bash" 42 hours ago Exited (0) 42 hours ago sharp_wescoff 81 B (virtual 187.7 MB)
0bd2b54678c7 training/webapp "python app.py" 5 days ago Exited (0) 5 days ago backstabbing_ritchie 0 B (virtual 323.7 MB)
0adbc74a3803 training/webapp "python app.py" 5 days ago Exited (143) 5 days ago drunk_feynman 0 B (virtual 323.7 MB)
um que eu quero excluir da lista, ou seja, "training / webapp", mas ocorreu um erro
sts@Yudi:~/docker$ sudo docker rmi training/webapp
Error response from daemon: conflict: unable to remove repository reference "training/webapp" (must force) - container 0bd2b54678c7 is using its referenced image 54bb4e8718e8
Error: failed to remove images: [training/webapp]
Se o contêiner está sendo executado nas imagens?
Por favor ajude
docker
containers
Yuday
fonte
fonte
Respostas:
Há uma diferença entre as imagens e os contêineres. Verifique esta questão SO .
Em resumo, um contêiner é uma instância em execução de uma imagem. é por isso que você não pode excluir uma imagem se houver um contêiner em execução nessa imagem. Você só precisa excluir o contêiner primeiro.
Atualização para o Docker 1.13+ [Desde janeiro de 2017]
Basicamente, os comandos acima também podem ser reescritos, mais claramente, como:
Além disso, se você deseja remover TUDO, você pode usar:
fonte
docker rmi -f id
para "forçar" a remoção.-f
ajuda quando você deseja remover uma imagem referenciada em vários repositórios, que é outro motivo comum para não remover uma imagem.docker container ls
apenas lista os contêineres em execução. Isso mexeu comigo até eu perceber que adicionar a-a
bandeira lista todas elas.Primeiro, remova os nomes dos contêineres
O resultado
exclua a segunda parte, listada no contêiner a ser excluído
Segundo, remova o recipiente
O resultado
Verifique o continente
fonte
rm `docker ps -aq`
de encaixe para limpeza, em vez de removê-los um de cada vez. Mais informações aquiSe você deseja limpar imagens e recipientes da janela de encaixe
CUIDADO: isso liberará tudo
pare todos os recipientes
remova todos os recipientes
remova todas as imagens
fonte
docker rm $(docker ps -a -q)
. Obrigado!você pode usar a
-f
opção para forçar a exclusão dos contêineres.sudo docker rmi -f training/webapp
Você pode parar os recipientes usando
sudo docker stop training/webapp
antes de excluirfonte
sudo docker stop 0bd2b54678c7
Se você tiver vários contêineres docker lançados, use este
$ docker rm $(docker ps -aq)
Ele removerá todas as janelas de encaixe atuais listadas no comando "ps -aq".
Fonte: aaam em https://github.com/docker/docker/issues/12487
fonte
docker image ls
e depoisdocker image rm X
onde cada X foi obtido dals
saída.Percebi que essa é uma pergunta de 2 anos, mas ainda quero compartilhar minha solução alternativa para essa pergunta em particular:
primeiro, corra
docker container ls -a
para listar todos os contêineres que você possui e identifique o que deseja excluir.Em segundo lugar, exclua aquele com o comando
docker container rm <CONTAINER ID>
(se o contêiner estiver em execução no momento, você deve pará-lo primeiro, executedocker container stop <CONTAINER ID>
para parar normalmente o contêiner especificado, se não o parar por qualquer motivo, é possível executar alternativamentedocker container kill <CONTAINER ID> to force shutdown of the specified container
).Em terceiro lugar, remova o contêiner executando
docker container rm <CONTAINER ID>
.Por fim, você pode executar
docker image ls -a
para visualizar todas as imagens e excluir a que deseja executandodocker image rm <hash>
.fonte
Remover imagens da janela de encaixe>
Listar todos os contêineres
Listar todas as imagens
Parar contêiner por ID do contêiner
Remover contêiner pelo ID do contêiner
Se não quiser parar e remover, pode forçar a remoção
Remover imagem
Feito!
fonte
liste todas as suas imagens do Docker:
listar todos os contêineres de docker existentes:
exclua todos os contêineres de destino, usando a imagem que deseja excluir:
exclua a imagem segmentada:
fonte
Remova apenas os contêineres associados a uma imagem específica
fonte