Introduzione
I container Docker sono progettati per fornire un ambiente autosufficiente, con tutte le librerie e le configurazioni necessarie per l'esecuzione del software. Durante lo sviluppo, possono diventare disorganizzati con componenti vecchi, obsoleti e inutilizzati.
In questa guida imparerai come organizzare un ambiente Docker rimuovendo immagini, contenitori, volumi e reti Docker.
L'utilizzo di questi comandi rende la gestione dei container Docker semplice e veloce.
Prerequisiti
- Sistema Linux con Docker
- Accesso a un terminale/riga di comando (Ctrl +Alt +T su Ubuntu, Alt +F2 su CentOS)
- Account utente con sudo privilegi
Come rimuovere i contenitori Docker
Un contenitore crea un ambiente specifico in cui è possibile eseguire un processo. Molti container vengono creati, testati e abbandonati durante il ciclo di vita dello sviluppo.
Pertanto, è importante sapere come trovare i contenitori non necessari e rimuoverli.
Arresta i contenitori
1. Innanzitutto, elenca tutti i contenitori Docker utilizzando il comando:
docker container ls -a
L'output mostra un elenco di tutti i contenitori in esecuzione, i relativi ID, nomi, immagini, stato e altri parametri.
Puoi anche generare un elenco di tutti i contenitori solo in base ai loro ID numerici, esegui il comando:
docker container ls -aq
2. Per fermare un contenitore specifico , inserisci quanto segue:
docker container stop [container_id]
Sostituisci [container_id]
con l'ID numerico del contenitore dalla tua lista.
Puoi inserire più ID contenitore nello stesso comando.
Per arrestare tutti i contenitori , inserisci:
docker container stop $(docker container ls -aq)
Ciò costringe Docker a utilizzare l'elenco di tutti gli ID contenitore come destinazione della stop
comando.
Rimuovi un contenitore fermo
Per rimuovere un contenitore fermo , usa il comando:
docker container rm [container_id]
Come prima, questo rimuove un contenitore con l'ID specificato.
Rimuovi tutti i contenitori fermi
Per rimuovere tutti i contenitori interrotti :
docker container rm $(docker container ls -aq)
Rimuovi tutti i contenitori Docker
Per pulire Docker e ricominciare da zero, inserisci il comando:
docker container stop $(docker container ls -aq) && docker system prune -af --volumes
Questo indica a Docker di interrompere i contenitori elencati tra parentesi.
Tra parentesi, chiedi a Docker di generare un elenco di tutti i contenitori con il loro ID numerico. Quindi, l'informazione viene ritrasferita alla container stop
comando e ferma tutti i contenitori.
Il &&
l'attributo indica a Docker di rimuovere tutti i contenitori e i volumi interrotti.
-af
indica che ciò dovrebbe applicarsi a tutti i contenitori (a
) senza una conferma richiesta (f
).
Rimozione del contenitore con filtri
Puoi anche specificare di eliminare tutti gli oggetti che non corrispondono a un'etichetta specificata.
Per farlo, usa il comando:
docker container prune --filter="label!=maintainer=Jeremy"
Questo comando dice a Docker di rimuovere tutti i contenitori che non sono etichettati con un manutentore di "jeremy ." Il !=
command è una notazione logica che significa "non uguale a ."
Una suddivisione dell'label
comandi:
label=<key>
label=<key>=<value>
label!=<key>
label!=<key>=<value>
L'utilizzo di questi termini insieme alle etichette ti offre un controllo approfondito sulla rimozione delle risorse in Docker.
Come rimuovere le immagini Docker
Le immagini Docker sono file che includono più livelli utilizzati per eseguire il codice all'interno di un contenitore.
Le immagini possono subire molte iterazioni durante lo sviluppo. Immagini vecchie e obsolete possono ingombrare il tuo sistema, occupando spazio di archiviazione e rendendo le ricerche più ingombranti.
1. Per rimuovere un'immagine Docker , inizia elencando tutte le immagini sul tuo sistema:
docker image ls
L'output mostra le immagini Docker disponibili localmente, come mostrato di seguito.
2. Prendere nota dell'ID IMMAGINE – questo è l'identificatore utilizzato per rimuovere l'immagine.
3. Quindi, rimuovi le immagini indesiderate:
docker image rm [image_id1] [image_id2]
Sostituisci [image_id1]
e [image_id2]
con l'ID immagine che hai estratto dal primo comando. Puoi inserire un singolo ID immagine o più ID per la rimozione.
Il sistema potrebbe rispondere alla tua richiesta con un messaggio di errore, che c'è un conflitto e non è in grado di rimuovere il riferimento al repository. Ciò indica che un contenitore sta utilizzando l'immagine. Devi rimuovere il contenitore prima di poter rimuovere l'immagine.
Rimozione delle immagini Docker con i filtri
Al momento della pubblicazione, gli unici filtri supportati sono until
e label
. Tuttavia, questi sono potenti strumenti per la gestione delle risorse Docker.
Usa il until
filtro per rimuovere tutte le risorse fino a un determinato momento.
Immettere quanto segue:
docker image prune -a --filter "until=24h"
Questo rimuove tutto (-a
) immagini create nelle ultime 24 ore. Il comando può essere utilizzato per contenitori, immagini e filtri. Assicurati di specificare la risorsa che desideri rimuovere.
Il until
il comando accetta timestamp Unix, timestamp formattati per data o una quantità di tempo (30m, 4h, 2h25m) calcolata rispetto al tempo della macchina.
Utilizza l'label
comando per rimuovere le risorse definite dalle etichette.
Immettere quanto segue:
docker image prune --filter="label=old"
Questo rimuove tutte le immagini della finestra mobile che sono stati etichettati come "vecchi".
Il filtro può essere utilizzato anche per definire un valore specifico di un'etichetta.
Ad esempio, se un container è etichettato con una chiave "maintainer" e il valore di "maintainer" è "bill" o "jeremy", puoi digitare:
docker container prune --filter="label=maintainer=bill"
Docker rimuove quindi tutti i contenitori con l'etichetta "maintainer" con un valore di "bill".
Come rimuovere i volumi Docker
Un volume viene utilizzato per memorizzare i dati Docker.
Aiuta a memorizzare e organizzare i dati al di fuori dei contenitori in modo da renderli accessibili a più contenitori.
1. Utilizzare il comando seguente per generare un elenco di tutti i volumi Docker disponibili:
docker volume ls
Prendi nota del NOME VOLUME vuoi rimuovere.
2. Quindi inserisci:
docker volume rm VolumeName
Assicurati di sostituire VolumeName
con il nome effettivo che hai generato con il comando precedente.
Se il volume è utilizzato da un container esistente, il sistema risponde con un errore. Ciò significa che è necessario rimuovere prima il contenitore.
Come rimuovere le reti Docker
Le reti Docker consentono a contenitori diversi di comunicare liberamente tra loro, impedendo anche il traffico dall'esterno della rete. Questa operazione viene in genere eseguita con una rete bridge Docker.
Il prune
il comando rimuove tutte le reti inutilizzate.
Rimozione di una singola rete
1. Visualizza un elenco di tutte le reti Docker esistenti con il comando:
docker network ls
2. Prendi nota dell'ID RETE – questo è l'identificatore utilizzato per rimuovere una rete specifica. Quindi, inserisci:
docker network rm [networkID]
Sostituisci [networkID]
con l'ID che hai acquisito dal primo comando.
Potresti ricevere un messaggio di errore che dice che la rete ha endpoint attivi. Ciò significa che la rete è attualmente utilizzata dai container. Devi rimuovere i contenitori che utilizzano la rete prima di poter rimuovere la rete.
Rimuovi tutti gli oggetti Docker inutilizzati
La prune
il comando rimuove automaticamente tutte le risorse che non sono associate a un contenitore. Questo è un modo semplificato per ripulire immagini, contenitori, volumi e reti inutilizzati.
In una finestra di terminale, inserisci quanto segue:
docker system prune
È possibile includere ulteriori flag:
-a
Per includere i contenitori interrotti e le immagini inutilizzate-f
Ignora la finestra di conferma--volumes
Rimuove tutti i volumi inutilizzati
Inoltre, puoi specificare un singolo tipo di oggetto da rimuovere, invece dell'intero ambiente:
docker container prune
docker image prune
docker volume prune
docker network prune
Esecuzione di docker system prune -a
rimuove sia le immagini inutilizzate che quelle penzolanti. Le immagini utilizzate in un contenitore, attualmente in esecuzione o chiuse, NON saranno interessate.
Elenca tutte le risorse Docker
Immettere i seguenti comandi per visualizzare le risorse:
docker container ls
docker image ls
docker volume ls
docker network ls
docker info
Quanto sopra elenca il numero di contenitori, immagini e informazioni sull'installazione di Docker. Questi comandi possono aiutarti a individuare e identificare le risorse che desideri conservare o che desideri eliminare.
È inoltre possibile aggiungere i seguenti flag:
-a
visualizzare tutta una risorsa (comprese quelle che sono state interrotte)-q
o--quiet
(visualizza solo l'ID numerico)