comando único para parar e remover o contêiner do docker

138

Existe algum comando que pode combinar o docker stope docker rmcomandar juntos? Cada vez que desejo excluir um contêiner em execução, preciso executar 2 comandos sequencialmente, me pergunto se existe um comando combinado que possa simplificar esse processo.

docker stop CONTAINER_ID
docker rm CONTATINER_ID
mainframer
fonte
2
Depende do contêiner: ctl.io/developers/blog/post/…
VonC 1/16/16

Respostas:

236

Você pode usar :

docker rm -f CONTAINER_ID

Ele removerá o contêiner, mesmo se ainda estiver em execução.

https://docs.docker.com/engine/reference/commandline/rm/

Você também pode executar seus contêineres com a --rmopção; ele será removido automaticamente quando parado.

https://docs.docker.com/engine/reference/run/#clean-up-rm

Edit: A rm -fpode ser perigoso para os seus dados e é mais adequada para recipientes de teste ou de desenvolvimento. Vale a pena ler o comentário de @ Bernard sobre esse assunto.

vmonteco
fonte
15
Seja cuidadoso. docker rm -fenvia um sinal SIGKILL para o contêiner. Isso pode não levar tempo para o contêiner salvar seu estado corretamente. Para contêineres não apátridas, deve-se realmente usar docker stopseguido de docker rm. Isso envia um sinal SIGTERM que, por padrão, fornece aos contêineres um máximo de 10 segundos para executar seu desligamento antes que o daemon do docker finalmente envie um SIGKILL.
Bernard
3
Acho a opção --rm mais apropriada para contêineres de curta duração.
Prashant Sinha
30
docker stop CONTAINER_ID | xargs docker rm
ortex
fonte
Ideia inteligente. Eu gosto, pois também pode ser usado para outros comandos, nos quais você deseja passar um argumento em dois comandos sem repeti-los ou usar uma variável.
Lion
16

Você pode parar e remover o contêiner com um único comando, dando $_o último eco

docker stop CONTAINER && docker rm $_
Axel Monroy
fonte
7

No meu caso, para remover todos os contêineres em execução, usei

docker rm -f $(docker ps -a -q); docker rmi $(docker images -q)
user9869932
fonte
2

Remova todos os recipientes: docker ps -aq | xargs docker rm -f

Andriy Tolstoy
fonte
Erro de permissão negada. Adicionado sudo. sudo docker ps -aq | sudo xargs docker rm -f
Hussain K
2

Isso irá parar e remover todas as imagens, incluindo a execução de contêineres enquanto estivermos usando -f

docker rmi -f $(docker images -a -q)
Pranoy Gn
fonte
1

Use o comando docker ps com o sinalizador -a para localizar o nome ou o ID dos contêineres que você deseja remover

docker ps -a

Para remover: $ docker rm ID_or_Name ID_or_Name

Remova um contêiner ao sair:

Se você souber quando estiver criando um contêiner que não deseja mantê-lo por perto quando terminar, execute o docker run --rm para excluí-lo automaticamente quando ele sair.

Executar e remover: docker run --rm image_name

Remova todos os contêineres encerrados:

Você pode localizar contêineres usando a janela de encaixe ps -a e filtrá-los por seu status: criado, reiniciado, executando, pausado ou encerrado. Para revisar a lista de contêineres encerrados, use o sinalizador -f para filtrar com base no status. Quando você verificar que deseja remover esses contêineres, use -q para passar os IDs para o comando docker rm.

Lista:

docker ps -a -f status=exited

docker rm $(docker ps -a -f status=exited -q)

Remova os recipientes usando mais de um filtro :

Os filtros do Docker podem ser combinados repetindo o sinalizador do filtro com um valor adicional. Isso resulta em uma lista de contêineres que atendem a qualquer condição. Por exemplo, se você deseja excluir todos os contêineres marcados como Criado (um estado que pode resultar quando você executa um contêiner com um comando inválido) ou Exitado, pode usar dois filtros:

docker ps -a -f status=exited -f status=created

Pare e remova todos os recipientes:

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
Prakash AWS
fonte
0

Para remover um único recipiente

docker rm -f CONTAINER_ID

Para remover todos os recipientes

docker rm -f `docker container ps -qa`
Abhinav Mehta
fonte
0

Para remover todos os contêineres parados docker system prune

Para parar o contêiner docker stop CONTAINER_IDativo , aguarde 10 segundos e ele chamadocker kill CONTAINER_ID

Ou então docker kill CONTAINER_ID, você pode parar imediatamente o contêiner

Nuriddin Kudratov
fonte