I container si sono inseriti nel paesaggio dell’IT. Infatti, la containerizzazione delle applicazioni e dei servizi ha reso possibile alle aziende di diventare ancora più agili di quanto non fossero prima.
E chi non vuole un po’ più di agilità per la propria azienda?
Ma cos’è un contenitore? Un contenitore è un modo di arrotolare il software in piccoli pacchetti autocontenuti che includono tutte le librerie e le impostazioni necessarie affinché il software funzioni come se fosse installato con il metodo standard. Per esempio, se vuoi distribuire un server NGINX, invece di installare il server e tutte le sue dipendenze su un hardware standard o virtuale, puoi semplicemente estrarre l’immagine NGINX e distribuire un contenitore basato su quell’immagine. In pochi secondi avrete quel server web NGINX pronto a lavorare.
Potreste pensare, “Perché non usare semplicemente una macchina virtuale? A differenza di una macchina virtuale, un contenitore non richiede un sistema operativo completo per farlo funzionare. Infatti, i contenitori sono neutrali rispetto alla piattaforma. Finché avete un sistema che supporta il vostro contenitore, può essere distribuito. Ancora meglio, i container funzionano sempre allo stesso modo, indipendentemente dalla piattaforma su cui vengono distribuiti.
Ma cosa viene usato per distribuire i container? Un sistema è Docker. Docker è uno degli strumenti più semplici disponibili per distribuire software containerizzato. È gratuito e disponibile per l’installazione sulla maggior parte delle piattaforme.
Quali sono i vantaggi dei container?
I vantaggi di usare i container (rispetto ai metodi tradizionali o alle macchine virtuali) sono molti. Eccone solo alcuni:
- Distribuzione rapida: Con un’immagine scaricata da Docker Hub, è possibile distribuire rapidamente un contenitore con un singolo comando).
- Creare uno, distribuire molti: Puoi creare tutti i contenitori che vuoi da una singola immagine.
- Meno overhead: I contenitori richiedono molte meno risorse di sistema rispetto ai metodi tradizionali.
- Portabilità: Le applicazioni eseguite come container possono essere distribuite su diversi sistemi operativi e piattaforme hardware.
- Sviluppo di applicazioni più facile: Per progettazione, i container supportano cicli di sviluppo agili.
- Avvio quasi istantaneo: I contenitori possono essere avviati quasi istantaneamente, mentre una macchina virtuale può richiedere tempo per l’avvio.
- Modularità: Applicazioni complesse possono essere divise in moduli, come un database, un server web e un front end.
Ora che avete un po’ più di comprensione di cosa sono i container e perché dovreste usarli, scopriamo come installare Docker su due dei più popolari sistemi operativi server open source, Ubuntu Server (versione 18..04) e CentOS 7.
Installazione di Docker su CentOS 7
Primo, installeremo Docker CE (Community Edition) su CentOS 7. L’installazione viene effettuata tramite la riga di comando, quindi accedi al tuo server CentOS 7 e preparati a digitare.
Il primo passo è quello di installare tutte le dipendenze necessarie per Docker. Per fare questo, eseguite il seguente comando:
1
|
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
|
Una volta completato questo comando, dovrai aggiungere il repository docker-ce con il comando:
1
|
sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
Con il repository in posizione, installare docker-ce con il comando:
1
|
sudo yum install docker-ce
|
Vi verrà chiesto di approvare l’installazione (e l’importazione della sua chiave GPG – Figura A).
Figura A
Quando questa operazione sarà completata, dovrai aggiungere il tuo utente al gruppo Docker. Se salti questo passo, sarai solo in grado di eseguire i comandi Docker usando sudo, il che è un rischio per la sicurezza. Per aggiungere il tuo utente al gruppo Docker, esegui il comando
1
|
sudo usermod -aG docker $(whoami)
|
Esci da CentOS 7 e fai di nuovo il login perché la modifica abbia effetto.
Infine, è necessario avviare il demone Docker e abilitarlo in modo che si avvii all’avvio del sistema. Questo può essere fatto con i seguenti due comandi:
1
2
3
|
sudo systemctl enable docker
sudo systemctl start docker
|
Se si lancia il comando docker images (che è il comando per elencare tutte le immagini disponibili trovate sul sistema), non solo vedrete che Docker funziona, ma che attualmente non ha immagini disponibili (Figura B).
docker_b.jpg
Docker è attivo e funzionante, ma non contiene immagini.
Se vuoi estrarre l’immagine NGINX da Docker Hub, esegui il comando:
1
|
docker pull nginx
|
Lancia nuovamente il comando docker images e vedrai l’immagine appena estratta disponibile (Figura C).
Figura C
L’immagine NGINX è pronta per essere usata per la distribuzione dei container.
Installazione di Docker su Ubuntu Server 18.04
Installare Docker su Ubuntu Server è in realtà un po’ più semplice. Dal momento che Docker si trova nel repository standard, tutto quello che dovete fare è accedere al vostro Ubuntu Server ed eseguire il comando:
1
|
sudo apt-get install docker.io -y
|
Il comando di cui sopra installerà tutte le dipendenze necessarie per far funzionare Docker. Una volta completato, abilita e avvia il servizio docker con i comandi:
1
2
3
|
sudo systemctl enable docker
sudo systemctl start docker
|
Finalmente, aggiungetevi al gruppo docker con il comando
1
|
sudo usermod -aG docker $(whoami)
|
Esci dal server e riaccedi. Ora potete eseguire gli stessi comandi che avete fatto su CentOS 7. Elenca le immagini disponibili con il comando:
1
|
docker images
|
Come previsto, non vedrai immagini elencate (Figura D).
Figura D
Nessuna immagine è ancora disponibile per Ubuntu Server.
Prendi l’immagine NGINX con il comando:
1
|
docker pull nginx
|
Una volta che l’immagine è stata scaricata, lanciare nuovamente il comando docker images per vederla elencata (Figura E).
Figura E
L’immagine NGINX disponibile su Ubuntu Server.
Conclusione
E questo è come installare Docker sia su CentOS 7 che su Ubuntu Server 18.04. Nella nostra prossima installazione di questa serie, impareremo come distribuire un contenitore, utilizzando l’immagine NGINX estratta da Docker Hub.
Immagine di _jinnie_ da .