Questo tutorial dettagliato su Docker copre le basi dei comandi Docker, ad esempio come creare un nuovo contenitore, come eseguire il contenitore, rimuovere un contenitore, come creare la tua immagine Docker dal contenitore e così via. Cominciamo!
Se non hai ancora installato Docker, consulta le seguenti guide:
- Come installare Docker in CentOS
- Come installare Docker in Ubuntu
Iniziare con Docker in Linux
Tutti i passaggi indicati di seguito sono testati nell'edizione server LTS di Ubuntu 18.04.
Prima di iniziare con Docker, vorrei chiarire cos'è un'immagine Docker e un contenitore Docker.
Un'immagine Docker è il file che decide come deve comportarsi un Container e Docker Container è la fase in esecuzione o interrotta di un'immagine Docker.
I contenitori sono isolati dal resto dei file dell'host.
Quando eseguiamo un contenitore Docker, utilizza un filesystem isolato fornito da un'immagine Docker. L'immagine Docker è composta da tutto il necessario per eseguire un'applicazione:tutte le dipendenze, la configurazione, gli script, i file binari, ecc.
L'immagine contiene anche altre configurazioni per il contenitore, come variabili di ambiente, un comando predefinito da eseguire e altri metadati.
1. Cerca immagini Docker
Possiamo ottenere le immagini da entrambi dal registro, ad esempio Hub Docker , o crearne uno, Per chi se lo chiedesse, Docker hub è un repository centrale online in cui tutti gli utenti Docker creano, testano e salvano le loro immagini Docker.
L'hub Docker ha decine di migliaia di immagini Docker. Puoi cercare qualsiasi immagine Docker con "docker search"
comando.
Ad esempio, per cercare immagini docker basate su Ubuntu, esegui:
$ sudo docker cerca ubuntu
Risultato di esempio:
Per cercare immagini in base a CentOS, esegui:
$ sudo docker cerca ubuntu
Per cercare immagini per AWS, esegui:
$ sudo docker search aws
Per wordpress:
$ sudo docker cerca wordpress
L'hub Docker ha quasi tutti i tipi di immagini. Che si tratti di un sistema operativo, un'applicazione o altro, troverai immagini Docker predefinite nell'hub Docker.
Se qualcosa che stai cercando non è disponibile, puoi costruirlo e renderlo disponibile al pubblico o mantenerlo privato per uso personale.
2. Scarica l'immagine Docker
Per scaricare l'immagine Docker per il sistema operativo Ubuntu, esegui il seguente comando dal Terminale:
$ sudo docker pull ubuntu
Il comando precedente scaricherà l'ultima immagine di Ubuntu dall'hub Docker .
Risultato di esempio:
Utilizzo del tag predefinito:ultimatest:estrazione dalla libreria/ubuntu6abc03819f3e:pull complete complete 05731e63f211:pull complete 0bd67c50d6be:pull complet digest:sha256:f08638ec7ddc90065187eeabdfac3tu 4f3cf176.Puoi anche scaricare una versione specifica dell'immagine di Ubuntu usando il comando:
$ docker pull ubuntu:18.04Docker ci consente di scaricare qualsiasi immagine e avviare il contenitore indipendentemente dal sistema operativo host.
Ad esempio, per scaricare l'immagine CentOS, esegui:
$ sudo docker cento tiraTutte le immagini Docker scaricate verranno salvate in
/var/lib/docker/
directory.Per visualizzare l'elenco delle immagini Docker scaricate, eseguire:
Immagini della finestra mobile $ sudoRisultato di esempio:
REPOSITORY TAG IMAGE ID CREATED SIZEubuntu più recente 7698f282e524 14 ore fa 69.9MBcentos più recente 9f38484d220f 2 mesi fa 202MBhello-world più recente fce289e99eb9 4 mesi fa 1.84kBCome vedi sopra, ho scaricato tre immagini Docker:Ubuntu , CentOS e ciao mondo .
Ora andiamo avanti e vediamo come avviare o eseguire i container in base alle immagini scaricate.
3. Esegui i contenitori Docker
Possiamo avviare un container in due modi:utilizzando il suo TAG o ID IMMAGINE .
TAG si riferisce a una particolare istantanea dell'immagine e all'ID IMMAGINE è l'identificatore univoco corrispondente per quell'immagine.
Come nei risultati precedenti
"latest"
è il TAG di tutti i contenitori e7698f282e524
è l'ID IMMAGINE di Ubuntu Immagine Docker,9f38484d220f
è l'ID immagine dell'immagine Docker CentOS efce289e99eb9
è l'ID immagine di hello_world Immagine Docker.Dopo aver scaricato le immagini Docker di tua scelta, esegui il comando seguente per avviare un container Docker utilizzando il relativo TAG.
$ sudo docker run -t -i ubuntu:latest /bin/bashEcco,
-t
:Assegna un nuovo Pseudo Terminale all'interno del contenitore Ubuntu.-i
: Ci consente di stabilire una connessione interattiva afferrando lo standard in (STDIN) del contenitore.ubuntu:latest
:contenitore Ubuntu con TAG "latest"./bin/bash
:shell BASH per il nuovo contenitore.
In alternativa, puoi avviare il contenitore utilizzando IMAGE ID come mostrato di seguito:
$ sudo docker esegui -t -i 7698f282e524 /bin/bash
Ecco,
- 7698f282e524 - ID immagine
Dopo aver avviato il container, verrai automaticamente trasferito nella shell del container (prompt dei comandi):
Per tornare al Terminale del sistema host (nel mio caso è Ubuntu 18.04 LTS) senza terminare il Container (sistema operativo ospite), premere CTRL+P
seguito da CTRL+Q
.
Ora tornerai in sicurezza alla finestra del terminale del tuo computer host originale. Tieni presente che il contenitore è ancora in esecuzione in background e non è stato ancora terminato.
Per visualizzare l'elenco in esecuzione dei contenitori, eseguire il comando seguente:
$ sudo docker ps
Risultato di esempio:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES32fc32ad0d54 ubuntu:latest "/bin/bash" 7 minuti fa Fino a 7 minuti modest_jones
Ecco,
32fc32ad0d54
- ID contenitoreubuntu:latest
- Immagine Docker
Tieni presente che L'ID contenitore e l'ID immagine Docker sono diversi .
Per elencare tutti i contenitori disponibili (in esecuzione o interrotti), esegui:
$ sudo docker ps -a
Per interrompere (spegnere il contenitore) dalla shell dell'host, eseguire il comando seguente:
$ sudo docker stop
Esempio:
$ sudo docker stop 32fc32ad0d54
Per accedere nuovamente o collegarsi al contenitore in esecuzione, esegui semplicemente:
$ sudo docker allega 32fc32ad0d54
Come già sai, 32fc32ad0d54
è l'ID del contenitore.
Per spegnere un Container dall'interno della sua shell, digita il seguente comando:
# uscita
Puoi verificare l'elenco dei contenitori in esecuzione con il comando:
$ sudo docker ps
4. Crea le tue immagini Docker personalizzate
Docker non serve solo per scaricare e utilizzare i contenitori esistenti. Puoi anche creare la tua immagine della finestra mobile personalizzata.
Per farlo, avvia un container:
$ sudo docker run -t -i ubuntu:latest /bin/bash
Ora sarai nel guscio del contenitore.
Quindi, installa qualsiasi software o fai quello che vuoi fare nel contenitore.
Ad esempio, installiamo il server web Apache nel contenitore.
# apt update# apt install apache2
Allo stesso modo, installa e testa qualsiasi software di tua scelta nel contenitore.
Una volta impostato tutto, torna alla shell del sistema host. Non fermare o spegnere il contenitore. Per passare alla shell del sistema host senza interrompere Container, premi CTRL+P
seguito da CTRL+Q
.
Dalla shell del tuo computer host, esegui il comando seguente per trovare l'ID contenitore:
$ sudo docker ps
Infine, crea un'immagine Docker del contenitore in esecuzione usando il comando:
$ sudo docker commit 3d24b3de0bfc ostechnix/ubuntu_apache
Risultato di esempio:
sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962
Ecco,
3d24b3de0bfc
– ID contenitore Ubuntu.ostechnix
– Nome dell'utente che ha creato il contenitore.ubuntu_apache
– Nome dell'immagine della finestra mobile creata dall'utente ostechnix.
Verifichiamo se la nuova immagine Docker viene creata o meno con il comando:
Immagini della finestra mobile $ sudo
Risultato di esempio:
REPOSITORY TAG IMAGE ID CREATED SIZEotechnix/ubuntu_apache latest ce5aa74a48f1 Circa un minuto fa 191MB ubuntu più recente 7698f282e524 15 ore fa 69.9MBcentos più recente 9f38484d220f 2 mesi fa 202MBhello-world più recente fce289e99eb9 4 mesi fa 1.84kB
Come puoi vedere nell'output sopra, la nuova immagine Docker è stata creata nel nostro sistema localhost dal contenitore in esecuzione.
Ora puoi creare un nuovo contenitore dall'immagine Docker appena creata come al solito con il comando:
$ sudo docker run -t -i ostechnix/ubuntu_apache /bin/bash
5. Rimozione dei contenitori
Una volta terminate tutte le attività di ricerca e sviluppo con i contenitori Docker, puoi eliminarli se non li desideri più.
Per farlo, per prima cosa dobbiamo fermare (spegnere) i container in esecuzione.
Scopriamo i container in esecuzione con il comando:
$ sudo docker ps
Risultato di esempio:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES3d24b3de0bfc ubuntu:latest "/bin/bash" 28 minuti fa Fino a 28 minuti goofy_easley
Arresta il contenitore in esecuzione utilizzando il suo ID:
$ sudo docker ferma 3d24b3de0bfc
Ora, elimina il contenitore usando il comando:
$ sudo docker rm 3d24b3de0bfc
Allo stesso modo, interrompi tutti i contenitori ed eliminali se non sono più necessari.
Eliminare più contenitori uno per uno può essere un compito noioso. Quindi, possiamo eliminare tutti i contenitori interrotti in una volta sola, basta eseguire:
Puta contenitore $ sudo docker
Digita "Y"
e premi ENTER
tasto per eliminare i contenitori.
ATTENZIONE! Verranno rimossi tutti i contenitori interrotti. Continuare? [y/N] y Contenitori eliminati:32fc32ad0d5445f2dfd0d46121251c7b5a2aea06bb22588fb2594ddbe46e65645ec614e0302061469ece212f0dba303c8fe99889389749e6220fe891997f38d0:Total reclamatoQuesto comando funzionerà solo con le ultime versioni di Docker.
6. Rimozione delle immagini Docker
Dopo aver rimosso i contenitori, puoi eliminare le immagini Docker che non ti servono più.
Per trovare l'elenco delle immagini Docker scaricate:
Immagini della finestra mobile $ sudoRisultato di esempio:
REPOSITORY TAG IMAGE ID CREATED SIZEostechnix/ubuntu_apache più recente ce5aa74a48f1 5 minuti fa 191MBubuntu più recente 7698f282e524 15 ore fa 69.9MBcentos più recente 9f38484d220f 2 mesi fa 202MBhello-world più recente fce289e99eb9 4 mesi fa 1.84kBCome vedi sopra, abbiamo tre immagini Docker nel nostro sistema host.
Eliminiamoli utilizzando il loro ID IMMAGINE:
$ sudo docker rmi ce5aa74a48f1Risultato di esempio:
Senza tag:ostechnix / ubuntu_apache:latestDeleted:sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962Deleted:sha256:d21c926f11a64b811dc75391bbe0191b50b8fe142419f7616b3cee70229f14cdRisoluzione dei problemi
Docker non ti consentirà di eliminare le immagini Docker se vengono utilizzate da contenitori in esecuzione o fermi.
Ad esempio, quando provo a eliminare un'immagine Docker con ID
b72889fa879c
, da uno dei miei vecchi server Ubuntu. Ho ricevuto il seguente errore:Risposta all'errore dal demone:conflitto:impossibile eliminare b72889fa879c (deve essere forzato) - l'immagine è utilizzata dal contenitore interrotto dde4dd285377Questo perché l'immagine Docker che desideri eliminare è attualmente utilizzata da un altro contenitore.
Quindi, controlliamo il contenitore in esecuzione usando il comando:
$ sudo docker psRisultato di esempio:
Ops! Nessun contenitore in esecuzione.
Controlliamo di nuovo tutti i contenitori (in esecuzione e fermi) con il comando:
$ sudo docker ps -aRisultato di esempio:
Come puoi vedere, ci sono ancora alcuni contenitori fermi che utilizzano una delle immagini Docker. Quindi, eliminiamo tutti i contenitori.
Esempio:
$ sudo docker rm 12e892156219Allo stesso modo, rimuovi tutti i contenitori come mostrato sopra utilizzando il rispettivo ID contenitore.
Dopo aver eliminato tutti i contenitori, rimuovi finalmente le immagini Docker.
Esempio:
$ sudo docker rmi b72889fa879cQuesto è tutto. Ora verifica se ci sono altre immagini Docker nell'host con il comando:
Immagini della finestra mobile $ sudoOra probabilmente non vedrai alcuna immagine della finestra mobile.
Leggi successivo:
- Spiegazione dei concetti di rete Docker
- Spiegazione dei volumi Docker con esempi
- Una breve introduzione a Dockerfile
- Introduzione a Docker Compose in Linux
- Come eseguire Docker come utente non root in Linux
- Tutorial Podman – Inizia con Podman
Conclusione
In questo tutorial completo per iniziare con Docker, abbiamo spiegato le nozioni di base di Docker come la creazione, l'esecuzione, la ricerca, la rimozione di container e anche la creazione di un'immagine Docker dal container.
Spero che tu abbia un'idea di base sull'utilizzo di Docker.
Per maggiori dettagli, fai riferimento ai link alle risorse ufficiali forniti alla fine di questa guida o lascia un commento nella sezione commenti qui sotto.
Scarica ebook Docker gratuiti:
Download - Free eBook: "Docker Containerization Cookbook"
Download - Free Guide: "Understanding Docker"
Download - Free Guide: "What is Docker and Why is it So Popular?"
Download - Free Guide: "Introduction to Docker"
Download - Free Guide: "Docker in Production"
Lettura consigliata:
- Come aggiornare automaticamente i contenitori Docker in esecuzione
- ctop – Uno strumento di monitoraggio della riga di comando per i container Linux
- Portainer:il modo più semplice per gestire Docker
- PiCluster:una semplice applicazione di gestione Docker basata sul Web
- Dockly - Gestisci i container Docker dal terminale