Spesso capita la necessità di dover accedere a un container per verificarne alcuni aspetti del funzionamento.
Anche se Docker non da nativamente un modo per accedere a un container, possiamo utilizzare un trucco ovvero eseguire un nuovo processo su quel container che esegue una shell.
Il comando che docker mette a disposizione per lanciare un nuovo processo è: docker container exec <nome o id del container> <comando>
Per interagire con un container, tendenzialmente si esegue una shell che in questo caso è invocata mediante il comando sh.
Supponendo di avere il container della sezione precedente in esecuzione (altrimenti lanciarlo come da istruzioni previste qui), eseguiamo:
docker container exec web sh
Ci accorgiamo presto che l’esecuzione termina subito, senza darci modo di interagire con il container. Questo accade perché dobbiamo avere un’esecuzione interattiva e un tty per poterci interagire. Anche in questo caso, abbiamo bisogno dei flag -i e -t. Se ritentiamo l’esecuzione con questi flag come segue
docker container exec -it web sh
Otteniamo un accesso alla shell.
Per uscire dalla shell basta utilizzare la shortcut Ctrl+d
—
Prosegui su: Accedere a un container