[CENTOS] - #55 Docker Installazione e start del primo Container
Sommario:
- Prerequisiti
- Installa Docker su CentOS
- Esecuzione del comando Docker senza Sudo
- Interfaccia della riga di comando Docker
- Immagini Docker
- Contenitori Docker
- Conclusione
Docker è una tecnologia di containerizzazione che consente di creare, testare e distribuire rapidamente applicazioni come container portatili e autosufficienti che possono essere eseguiti praticamente ovunque.
In questo tutorial, vedremo come installare Docker CE su CentOS 7 ed esploreremo i concetti e i comandi di base di Docker.
Prerequisiti
Prima di procedere con questa esercitazione, assicurarsi che siano soddisfatti i seguenti prerequisiti:
- Server CentOS 7 Si è effettuato l'accesso come utente non root con privilegi sudo. Dai un'occhiata a questa guida su come creare un nuovo utente sudo.
Installa Docker su CentOS
Sebbene il pacchetto Docker sia disponibile nel repository ufficiale CentOS 7, potrebbe non essere sempre l'ultima versione. L'approccio consigliato è installare Docker dai repository Docker.
Per installare Docker sul tuo server CentOS 7, procedi nel seguente modo:
-
Inizia aggiornando i pacchetti di sistema e installa le dipendenze richieste:
sudo yum update
sudo yum install yum-utils device-mapper-persistent-data lvm2
Quindi, esegui il comando seguente che aggiungerà il repository stabile Docker al tuo sistema:
sudo yum-config-manager --add-repo
Ora che il repository Docker è abilitato, installa l'ultima versione di Docker CE (Community Edition) usando yum digitando:
sudo yum install docker-ce
Una volta installato il pacchetto Docker, avvia il daemon Docker e abilitalo ad avviarsi automaticamente all'avvio:
sudo systemctl start docker
sudo systemctl enable docker
Per verificare che il servizio Docker sia in esecuzione, digitare:
sudo systemctl status docker
L'output dovrebbe assomigliare a questo:
● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2018-10-31 08:51:20 UTC; 7s ago Docs: https://docs.docker.com Main PID: 2492 (dockerd) CGroup: /system.slice/docker.service ├─2492 /usr/bin/dockerd └─2498 docker-containerd --config /var/run/docker/containerd/containerd.toml
Al momento in cui scrivo, l'attuale versione stabile di Docker è,
18.06.1
, per stampare il tipo di versione Docker:docker -v
Docker version 18.06.1-ce, build e68fc7a
Esecuzione del comando Docker senza Sudo
Per impostazione predefinita, Docker richiede i privilegi di amministratore. Se si desidera eseguire i comandi Docker come utente non root senza anteporre
sudo
è necessario aggiungere l'utente al gruppo docker creato durante l'installazione del pacchetto Docker CE. Puoi farlo digitando:
sudo usermod -aG docker $USER
$USER
è una variabile di ambiente che contiene il tuo nome utente.
Disconnettersi e riconnettersi in modo da aggiornare l'appartenenza al gruppo.
Per verificare che Docker sia installato correttamente e che sia possibile eseguire i comandi docker senza sudo, emettere il seguente comando che scaricherà un'immagine di prova, eseguirà in un contenitore, stampa un messaggio "Ciao da Docker" ed esce:
docker container run hello-world
L'output dovrebbe essere simile al seguente:
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 9bb5a5d4561a: Pull complete Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly.
Interfaccia della riga di comando Docker
Ora che abbiamo un'installazione Docker funzionante, passiamo alla sintassi di base della CLI docker.
La riga di comando della finestra mobile assume la forma seguente:
docker
Puoi elencare tutti i comandi disponibili digitando la
docker
senza parametri:
docker
Immagini Docker
Un'immagine Docker è composta da una serie di livelli che rappresentano le istruzioni nel file Docker dell'immagine che compongono un'applicazione software eseguibile. Un'immagine è un file binario immutabile che include l'applicazione e tutte le altre dipendenze come binari, librerie e istruzioni necessarie per eseguire l'applicazione. In breve, un'immagine Docker è essenzialmente un'istantanea di un contenitore Docker.
Docker Hub è un servizio di registro basato su cloud che tra le altre funzionalità viene utilizzato per conservare le immagini Docker in un repository pubblico o privato.
Per cercare un'immagine nel repository Docker Hub basta usare il sottocomando di
search
. Ad esempio, per cercare l'immagine CentOS, eseguire:
docker search centos
L'output dovrebbe essere simile al seguente:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS. 4257 ansible/centos7-ansible Ansible on Centos7 109 jdeathe/centos-ssh CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_… 94 consol/centos-xfce-vnc Centos container with "headless" VNC session… 52 imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 40 tutum/centos Simple CentOS docker image with SSH access 39
Come puoi vedere i risultati della ricerca stampa una tabella con cinque colonne,
NAME
,
DESCRIPTION
,
STARS
,
OFFICIAL
e
AUTOMATED
. L'immagine ufficiale è un'immagine che Docker sviluppa in collaborazione con partner a monte.
Se vogliamo scaricare la build ufficiale di CentOS 7, possiamo farlo utilizzando il sottocomando
image pull
:
docker image pull centos
Using default tag: latest latest: Pulling from library/centos 469cfcc7a4b3: Pull complete Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16 Status: Downloaded newer image for centos:latest
A seconda della velocità di Internet, il download potrebbe richiedere alcuni secondi o alcuni minuti. Una volta scaricata l'immagine, possiamo elencare le immagini con:
docker image ls
L'output dovrebbe essere simile al seguente:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e38bc07ac18e 3 weeks ago 1.85kB centos latest e934aafc2206 4 weeks ago 199MB
Se per qualche motivo vuoi eliminare un'immagine puoi farlo con il sottocomando
image rm
:
docker image rm centos
Untagged: centos:latest Untagged: centos@sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16 Deleted: sha256:e934aafc22064b7322c0250f1e32e5ce93b2d19b356f4537f5864bd102e8531f Deleted: sha256:43e653f84b79ba52711b0f726ff5a7fd1162ae9df4be76ca1de8370b8bbf9bb0
Contenitori Docker
Un'istanza di un'immagine è chiamata contenitore. Un contenitore rappresenta un runtime per una singola applicazione, processo o servizio.
Potrebbe non essere il confronto più appropriato ma se sei un programmatore puoi pensare a un'immagine Docker come classe e contenitore Docker come istanza di una classe.
È possibile avviare, arrestare, rimuovere e gestire un contenitore con il sottocomando
docker container
.
Il comando seguente avvierà un contenitore Docker basato sull'immagine CentoOS. Se non hai l'immagine localmente, la scaricherà prima:
docker container run centos
A prima vista, può sembrarti che non sia successo nulla. Bene, questo non è vero. Il contenitore CentOS si arresta immediatamente dopo l'avvio perché non ha un processo di lunga durata e non abbiamo fornito alcun comando, quindi il contenitore si è avviato, ha eseguito un comando vuoto e quindi è uscito.
L'
-it
ci consente di interagire con il contenitore tramite la riga di comando. Per avviare un tipo di contenitore interattivo:
docker container run -it centos /bin/bash
Come puoi vedere dall'output una volta avviato il contenitore, il prompt dei comandi viene modificato, il che significa che ora stai lavorando dall'interno del contenitore:
#
Per elencare i contenitori in esecuzione:, digitare:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli
Se non si dispone di contenitori in esecuzione, l'output sarà vuoto.
Per visualizzare sia i contenitori in esecuzione che quelli fermati, passare l'
-a
:
docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli c55680af670c centos "/bin/bash" 30 minutes ago Exited (0) 30 minutes ago modest_hawking c6a147d1bc8a hello-world "/hello" 20 hours ago Exited (0) 20 hours ago sleepy_shannon
Per eliminare uno o più contenitori è sufficiente copiare l'ID contenitore (o ID) dall'alto e incollarli dopo il sottocomando
container rm
:
docker container rm c55680af670c
Conclusione
Hai imparato come installare Docker sul tuo computer CentOS 7 e come scaricare le immagini Docker e gestire i contenitori Docker. Potresti anche leggere informazioni su Docker Compose, che ti consente di definire ed eseguire applicazioni Docker multi-container.
Questo tutorial graffia a malapena la superficie dell'ecosistema Docker. In alcuni dei nostri prossimi articoli, continueremo ad approfondire altri aspetti di Docker. Per ulteriori informazioni su Docker, consulta la documentazione ufficiale di Docker.
Come installare e utilizzare la finestra mobile componi su centos 7

Docker Compose è uno strumento che consente di definire ed eseguire applicazioni Docker multi-contenitore. Con Compose, definisci i servizi, le reti e i volumi dell'applicazione in un singolo file YAML, quindi esegui la rotazione dell'applicazione con un singolo comando.
Come installare e utilizzare la finestra mobile componi su debian 9

Docker Compose è uno strumento che consente di definire e orchestrare applicazioni Docker multi-container. Utilizza un file YAML per configurare i contenitori, le reti e i volumi dell'applicazione.
Come installare e utilizzare la finestra mobile di composizione su Ubuntu 18.04

Docker Compose è uno strumento che consente di definire e gestire applicazioni Docker multi-contenitore. Utilizza un file YAML per configurare servizi, reti e volumi dell'applicazione.