comando singolo per arrestare e rimuovere il contenitore finestra mobile


138

Esiste un comando che può combinare il comando docker stope il docker rmcomando insieme? Ogni volta che voglio eliminare un container in esecuzione, devo eseguire 2 comandi in sequenza, mi chiedo se esiste un comando combinato in grado di semplificare questo processo.

docker stop CONTAINER_ID
docker rm CONTATINER_ID

2
Dipende dal contenitore: ctl.io/developers/blog/post/…
VonC

Risposte:


238

Puoi usare :

docker rm -f CONTAINER_ID

Rimuoverà il contenitore anche se è ancora in esecuzione.

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

È inoltre possibile eseguire i contenitori con l' --rmopzione, che verrà automaticamente rimosso quando arrestato.

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

Edit: La rm -fpotrebbe essere pericoloso per i vostri dati ed è più adatto per contenitori di test o di sviluppo. Il commento di Bernard su questo argomento merita di essere letto.


16
Stai attento. docker rm -finvia un segnale SIGKILL al contenitore. Ciò potrebbe non consentire al contenitore il tempo di salvare correttamente il suo stato. Per i contenitori non stateless si dovrebbe davvero usare docker stopseguito da docker rm. Questo invia un segnale SIGTERM che di default dà ai container un massimo di 10 secondi per eseguire il loro arresto prima che il demone docker invii finalmente un SIGKILL.
Bernard,

3
trovo l'opzione --rm più adatta per contenitori di breve durata.
Prashant Sinha

30
docker stop CONTAINER_ID | xargs docker rm

Idea intelligente. Mi piace dal momento che potrebbe essere utilizzato anche per altri comandi, in cui si desidera passare un argomento su due comandi senza ripeterli o utilizzare una variabile.
Lion

16

È possibile interrompere e rimuovere il contenitore con un singolo comando che $_ti dà l'ultimo eco

docker stop CONTAINER && docker rm $_

7

Nel mio caso per rimuovere tutti i contenitori in esecuzione, ho usato

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


2

Rimuovi tutti i contenitori: docker ps -aq | xargs docker rm -f


Errore di autorizzazione negata. Aggiunto sudo. sudo docker ps -aq | sudo xargs docker rm -f
Hussain K,

2

Questo interromperà e rimuoverà tutte le immagini inclusi i container in esecuzione mentre stiamo usando -f

docker rmi -f $(docker images -a -q)

1

Utilizzare il comando docker ps con il flag -a per individuare il nome o l'ID dei contenitori che si desidera rimuovere

docker ps -a

Per rimuovere: $ docker rm ID_o_Nome ID_o_Name

Rimuovere un contenitore all'uscita:

Se sai quando stai creando un contenitore che non vorrai tenerlo in giro una volta terminato, puoi eseguire docker run --rm per eliminarlo automaticamente quando esce.

Esegui e rimuovi: docker run --rm image_name

Rimuovi tutti i contenitori usciti:

È possibile individuare i contenitori utilizzando la finestra mobile ps -a e filtrarli in base al loro stato: creati, riavviati, in esecuzione, in pausa o usciti. Per rivedere l'elenco dei contenitori usciti, utilizzare il flag -f per filtrare in base allo stato. Dopo aver verificato che desideri rimuovere quei contenitori, usa -q per passare gli ID al comando docker rm.

Elenco:

docker ps -a -f status=exited

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

Rimuovere i contenitori utilizzando più di un filtro :

I filtri docker possono essere combinati ripetendo il flag di filtro con un valore aggiuntivo. Ciò si traduce in un elenco di contenitori che soddisfano entrambe le condizioni. Ad esempio, se si desidera eliminare tutti i contenitori contrassegnati come Creato (uno stato che può risultare quando si esegue un contenitore con un comando non valido) o Uscito, è possibile utilizzare due filtri:

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

Arrestare e rimuovere tutti i contenitori:

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

0

Per rimuovere un singolo contenitore

docker rm -f CONTAINER_ID

Per rimuovere tutti i contenitori

docker rm -f `docker container ps -qa`

0

Per rimuovere tutti i contenitori fermi docker system prune

Per interrompere il contenitore live, docker stop CONTAINER_IDattende 10 secondi e chiamadocker kill CONTAINER_ID

O con docker kill CONTAINER_ID, puoi immediatamente arrestare il contenitore

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.