In questo tutorial imparerai come utilizzare i comandi di esecuzione Docker accompagnati da alcuni esempi.
La sintassi di base per il comando è:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Per eseguire un container, l'unica cosa che devi includere nel comando è l'immagine su cui si basa:
docker run [docker_image]
È possibile eseguire container da immagini Docker archiviate localmente. Se utilizzi un'immagine che non si trova nel tuo sistema, il software la estrae dal registro in linea.
Ad esempio, abbiamo utilizzato un Dockerfile per creare un'immagine Docker di esempio con l'attività di echo il messaggio "Hello World". Per noi, l'immagine ha l'ID b13c36ec72a42. Il nome della tua immagine sarà diverso a seconda del contenitore che desideri eseguire.
Il comando per eseguire il nostro container di esempio sarebbe:
docker run b13c36ec72a42
Il contenitore esegue l'attività prescritta (fa eco al messaggio "Hello World") e poi si ferma.
Quando si utilizza il comando di esecuzione di base, Docker genera automaticamente un nome di contenitore con una stringa di numeri e lettere selezionati casualmente.
Poiché esiste una scarsa possibilità che tu possa ricordare o riconoscere i container con questi nomi generici, valuta la possibilità di impostare il nome del contenitore su qualcosa di più facile da ricordare.
L'utilizzo dell'attributo --name consente di assegnare un nome al contenitore. Il comando per eseguire un contenitore con un nome specifico è:
docker container run --name [container_name] [docker_image]
Ad esempio, possiamo eseguire il contenitore di esempio e assegnargli il nome container_helloworld utilizzando il comando:
docker container run --name container_helloworld b13c36ec72a42
Puoi verificare se hai impostato correttamente un nome contenitore visualizzando un elenco di tutti i container (in esecuzione e arrestati) con il comando:
docker ps -a
Esistono due modi per eseguire un container : in modalità live o in modalità scollegata (in background).
Per impostazione predefinita, Docker esegue il contenitore in modalità live. Significa che è allegato alla sessione del terminale, dove mostra output e messaggi.
Se si desidera mantenere separati il container e la sessione del terminale corrente, è possibile eseguire il container in background utilizzando l'attributo -d. L'utilizzo della modalità background consente inoltre di chiudere la sessione del terminale aperta senza arrestare il container.
Il comando per eseguire un container in background è:
docker container run -d [docker_image]
Per il nostro esempio, il comando è:
docker container run -d b13c36ec72a42
Docker ti consente di eseguire un container in modalità interattiva. Ciò significa che puoi eseguire comandi all'interno del container mentre è ancora in esecuzione.
Utilizzando il container in modo interattivo, è possibile accedere a un prompt dei comandi all'interno del container in esecuzione. A tale scopo, eseguire il comando seguente:
docker container run -it [docker_image] /bin/bash
Quando esegui un container, l'unico modo per accedere al processo è dall'interno di esso. Per consentire connessioni esterne al container, è necessario aprire (pubblicare) porte specifiche.
È necessario aggiungere l'opzione -p al comando docker run e le seguenti informazioni:
-p [host_ip]:[host_port]:[container_port]
L'elemento host_ip è facoltativo e non è necessario specificarlo durante l'esecuzione del comando.
Ad esempio, per mappare la porta TCP 80 nel contenitore alla porta 8080 sull'host Docker, dovresti eseguire:
docker container run -p 8080:80 [docker_image]
I container Docker non salvano i dati che producono. Non appena il processo è terminato, il contenitore si ferma e tutto ciò che contiene viene rimosso.
Se si desidera che i dati persistenti vengano archiviati anche dopo l'arresto del contenitore, è necessario abilitare la condivisione dei volumi di archiviazione.
Per il montaggio dei volumi, utilizzare l'attributo -v con l'ubicazione specificata della directory in cui si desidera salvare i dati, seguito da dove si troveranno i dati all'interno del contenitore.
-v [/host/volume/location]:[/container/storage]
L'intero comando di esecuzione del contenitore docker è:
docker container run -v [/host/volume/location]:[/container/storage] [docker_image]
Una volta che un container esegue le sue attività, si ferma, ma il file system in cui è composto rimane sul sistema.
Se è necessario solo un container per eseguire l'attività delineata e in seguito non verrà più utilizzato, è possibile impostarlo per eliminarlo una volta terminato.
Per eseguire un contenitore che verrà automaticamente rimosso dopo essere usciti utilizzare il comando:
docker container run --rm [docker_image]
È possibile utilizzare questa guida per apprendere le basi o come utile promemoria quando necessario.