Come rimuovere i vecchi contenitori Docker
Questa domanda è legata a https://stackoverflow.com/questions/17014263/should-i-be-concerned-about-excess-non-running-docker-containers.
Mi sto chiedendo come rimuovere i vecchi contenitori. Il docker rm 3e552code34a
permette di rimuoverne uno solo, ma ne ho già molti. docker rm --help
non dà un'opzione di selezione (come tutti, o per nome dell'immagine).
Forse c'è una directory in cui questi contenitori sono memorizzati dove posso eliminarli facilmente manualmente?
1159
3
A partire da Docker 1.13.x puoi usare Docker container prune:
Questo rimuoverà tutti i contenitori fermi e dovrebbe funzionare su tutte le piattaforme allo stesso modo.
C'è anche un Docker system prune:
che pulirà tutti i contenitori inutilizzati, le reti, le immagini (sia dangling che non referenziate) e, opzionalmente, i volumi, in un solo comando.
Per le vecchie versioni di Docker, è possibile stringere i comandi Docker insieme ad altri comandi Unix per ottenere ciò di cui si ha bisogno. Ecco un esempio su come ripulire i vecchi container che sono vecchi di settimane:
Per dare credito, dove è dovuto, questo esempio è da https://twitter.com/jpetazzo/status/347431091415703552.
Un altro metodo, che ho preso da Guillaume J. Charmes (credito dovuto):
rimuoverà tutti i contenitori in modo elegante.
E da Bartosz Bilicki, per Windows:
Per PowerShell:
Un aggiornamento con Docker 1.13 (Q4 2016), credito a VonC (più avanti in questo thread):
docker system prune
cancellerà TUTTI i dati inutilizzati (cioè, in ordine: contenitori fermi, volumi senza contenitori e immagini senza contenitori).Vedi PR 26108 e commit 86de7c0, che stanno introducendo alcuni nuovi comandi per facilitare la visualizzazione di quanto spazio i dati del demone Docker stanno prendendo su disco e permettendo di pulire facilmente l'eccesso "non necessario".
Per prima cosa, fermare i container in esecuzione prima di tentare di rimuoverli
Rimuovi i container in esecuzione
Potresti usare
kill
invece distop
. Nel mio caso preferiscostop
dato che tendo a rieseguirli invece di crearne uno nuovo ogni volta, quindi cerco di chiuderli bene.Nota: Cercare di fermare un contenitore vi darà un errore:
Errore: Impossibile rimuovere un contenitore in esecuzione, per favore fermalo prima
Rimuovi tutti i contenitori