Pillole di Docker: attach vs exec
In questo nuovo appuntamento parliamo dei comandi attach
ed exec
.
Entrambi consentono la connessione con un container Docker, tuttavia attach
interagisce con il processo principale del container stesso (quello con PID 1) mentre exec
ne crea uno nuovo.
Non è una differenza da poco ed occorre approfondire questi concetti.
In generale attach
può essere visto come un modo per condividere il terminale del container. Infatti collegandosi da due terminali differenti si possono eseguire dei comandi da uno dei due e visualizzarne l'output in tempo reale sull'altro.
Naturalmente la terminazione del processo main implica quella del container stesso.
Diversamente il comando exec
fa partire un nuovo processo e generalmente si opera in questo modo quando occorre interagire con il container per eseguire un comando al suo interno o per aprire una shell.
La sintassi è alquanto semplice
docker exec -it <container_name> /bin/bash
In sostanza si specifica il nome del container e il comando da eseguire (la shell bash in questo esempio) e con l'opzione -it
si indica l'apertura di un terminale in modalità interattiva.
In questo modo tutti i successivi comandi saranno eseguiti come se si fosse davanti al terminale del container.
Per uscire dalla shell si utilizza il comando exit
che non modifica minimamente lo stato di esecuzione del container.
Per gli esempi pratici si rimanda al video sul canale YouTube.
CODICI SCONTOUtilizzate il seguente link per ottenere un credito free di $200 su DigitalOcean da spendere in 60 giorni
[VIDEO]
[LINKS]