Questo tutorial sulla finestra mobile illustra i metodi per arrestare un singolo contenitore mobile, più contenitori mobili o tutti i contenitori mobili in esecuzione contemporaneamente. Imparerai anche a fermare con grazia un contenitore mobile.
Per interrompere un contenitore mobile, tutto ciò che devi fare è utilizzare l'ID contenitore o il nome del contenitore nel modo seguente:
docker stop container_ID_or_name
Puoi anche utilizzare il comando docker container stop container_id_or_name, ma questa è una parola aggiuntiva nel comando e non fornisce alcun vantaggio aggiuntivo, quindi attieniti a docker stop.
Ma c'è di più per fermare un container Docker che dovresti sapere, specialmente se sei un principiante Docker.
Esempi pratici per arrestare il container docker
Discuterò vari aspetti relativi all'arresto di un contenitore Docker in questo tutorial:
- Arresta un container Docker
- Arresta più contenitori Docker contemporaneamente
- Arresta tutti i contenitori Docker con una determinata immagine
- Arresta contemporaneamente tutti i contenitori Docker in esecuzione
- Arresta con grazia un container Docker
Prima di vederlo, dovresti sapere come ottenere il nome o l'ID del contenitore.
Puoi elencare tutti i contenitori docker in esecuzione con docker ps
comando. Senza alcuna opzione, il comando docker ps mostra solo i contenitori in esecuzione.
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1bcf775d8cc7 ubuntu "bash" 8 minutes ago Up About a minute container-2
94f92052f55f debian "bash" 10 minutes ago Up 10 minutes container-1
L'output fornisce anche il nome del contenitore e l'ID del contenitore. Puoi usare uno di questi due per fermare un container.
Ora andiamo a fermare i container.
1. Arresta un container Docker
Per arrestare un contenitore specifico, utilizza il suo ID o nome con il comando di arresto della finestra mobile:
docker stop container_name_or_ID
L'output avrebbe dovuto essere più descrittivo, ma mostra solo il nome o l'ID del contenitore, a seconda di quello che hai fornito:
[email protected]:~$ docker stop 1bcf775d8cc7
1bcf775d8cc7
È possibile utilizzare il comando Docker stop su un container già arrestato. Non genererà errori o un output diverso.
È possibile verificare se il contenitore è stato arrestato utilizzando il comando docker ps -a. L'opzione -a mostra tutti i contenitori in esecuzione o fermi.
[email protected]:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1bcf775d8cc7 ubuntu "bash" 19 minutes ago Exited (0) About a minute ago container-2
94f92052f55f debian "bash" 29 minutes ago Up 29 minutes container-1
Se lo stato è Exited, significa che il container non è più in esecuzione.
2. Arresta più contenitori Docker
Puoi anche fermare più contenitori Docker contemporaneamente. Devi solo fornire i nomi e gli ID del contenitore.
docker stop container_id_or_name_1 container_id_or_name_2 container_id_or_name_3
Come in precedenza, l'output mostrerà semplicemente il nome o l'ID dei contenitori:
[email protected]:~$ docker stop container-1 container-2 container-3
container-1
container-2
container-3
3. Arresta tutti i contenitori associati a un'immagine
Finora cosa hai visto fermare i contenitori menzionando esplicitamente il loro nome o ID.
Cosa succede se si desidera interrompere tutti i contenitori in esecuzione di una determinata immagine Docker? Immagina uno scenario in cui desideri rimuovere un'immagine della finestra mobile ma dovrai interrompere tutti i contenitori in esecuzione associati.
Puoi fornire i nomi o gli ID del contenitore uno per uno, ma ciò richiede molto tempo. Quello che puoi fare è filtrare tutti i contenitori in esecuzione in base alla loro immagine di base.
Sostituisci IMAGE_NAME con il nome dell'immagine della finestra mobile e dovresti essere in grado di interrompere tutti i contenitori in esecuzione associati a quell'immagine.
docker ps -q --filter ancestor=IMAGE_NAME | xargs docker stop
L'opzione -q mostra solo l'ID del contenitore. Grazie al meraviglioso comando xargs, questi ID contenitore vengono reindirizzati alla finestra mobile come argomento.
4. Arresta tutti i contenitori Docker in esecuzione
Potresti trovarti di fronte a una situazione in cui ti viene richiesto di interrompere tutti i contenitori in esecuzione. Ad esempio, se desideri rimuovere tutti i contenitori in Docker, devi interromperli in anticipo.
Per farlo, puoi usare qualcosa di simile a quello che hai visto nella sezione precedente. Basta rimuovere la parte dell'immagine.
docker ps -q | xargs docker stop
5. Ferma un contenitore con grazia
Ad essere onesti, Docker interrompe un contenitore con grazia per impostazione predefinita. Quando usi il comando di arresto della finestra mobile, dà al contenitore 10 secondi prima di ucciderlo forzatamente.
Ciò non significa che occorrano sempre 10 secondi per fermare un contenitore. È solo che se il container esegue alcuni processi, ha 10 secondi per interrompere il processo e uscire.
Il comando di arresto Docker invia prima il comando SIGTERM. Se il contenitore viene fermato in questo periodo, invia il comando SIGKILL. Un processo può ignorare il SIGTERM ma SIGKILL interromperà il processo immediatamente.
Spero che tu conosca la differenza tra SIGTERM e SIGKILL.
Cos'è SIGTERM? Qual è la differenza tra SIGKILL e SIGTERM? Sia SIGTERM che SIGKILL sono usati per uccidere un processo in Linux. Ma dovresti preferire usare SIGTERM. Ecco perché! Manuale LinuxAbhishek PrakashPuoi modificare questo periodo di grazia di 10 secondi con l'opzione -t. Supponiamo di voler attendere 30 secondi prima di fermare il contenitore:
docker stop -t 30 container_name_or_id
Alla fine...
Penso che tutte queste informazioni coprano molto bene l'argomento. Sai molte cose sull'arresto di un container Docker.
Resta sintonizzato per ulteriori suggerimenti e tutorial sulla finestra mobile. Se hai domande o suggerimenti, faccelo sapere nella sezione commenti.