Docker: container per tutte le esigenze

dockerDocker è uno strumento che sfrutta le potenzialità del kernel linux e permette di eseguire ambienti virtuali all’interno del sistema operativo stesso. Sfrutta la tecnologia a container e può essere eseguito anche su macchine virtuali.

E’ possibile utilizzare Docker sui nostri prodotti Cloud Server, Easy Cloud Server e Foundation Server, il sistema operativo che consigliamo di utilizzare è Ubuntu 14.04 LTS poichè ha già il pieno supporto e l’installazione è molto semplice.

Per procedere all’ installazione è sufficiente digitare i seguenti comandi come utente root:

Se la procedura è andata a buon fine è possibile visualizzare la versione installata con:

Per vedere se il demone è correttamente in esecuzione digitiamo il seguente comando:

Una volta che abbiamo tutto installato possiamo eseguire i nostri ambienti virtuali,  sui repository ufficiali è possibile trovare una grande varierà di immagini preconfezionate, tutti i dettagli sono disponibili qui: https://registry.hub.docker.com/

E’ possibile cercare le immagini direttamente dalla riga di comando, la sintassi da utilizzare è:

Per scaricare un’immagine il comando da utilizzare è:

Vogliamo subito riportarvi un esempio pratico in modo che si possano toccare con mano le potenzialità di questo strumento, andremo quindi a configurare due ambienti virtuali, uno con il server web nginx, l’altro con l’application server tomcat.

Iniziamo con cercare l’immagine con nginx installato, ne troverete parecchie, noi utilizzeremo quella ufficiale che viene mostrata come primo risultato:

Andiamo ora ad eseguire il container, il comando run prende l’immagine dai repository (se questa non è stata precedentemente scaricata) ed avvia il container stesso.

I parametri passati al comando run sono:

-i per disabilitare la modalità interattiva;

-t utilizza una pseudo-tty;

-p specifica quali porta mappare nel formato hostPort:containerPort;

nginx è il nome dell’ immagine;

/bin/bash /etc/init.d/nginx start è il comando che viene eseguito all’avvio in questo caso serve ad avviare il server web.

Per uscire dal container lasciandolo in esecuzione dobbiamo utilizzare la sequenza di escape che è possibile richiamare con i tasti:

Se vogliamo vedere i container che sono in esecuzione lanciamo il comando:

Vedremo in questo caso l’immagine che abbiamo avviato ed il suo id, per riconnetterci possiamo utilizzare:

Abbiamo adesso la nostra prima immagine avviata con il server web nginx, richiamando nel browser l’ip del nostro host è possibile testarne il corretto funzionamento.

A questo punto protremmo aver bisogno di altri componenti per la nostra applicazione, come per esempio un webserver tomcat; nulla di più facile!  Cerchiamo subito sui repository con:

Scegliamo tra i vari risultati proprosti quello più adatto alle nostre esigenze e lo avviamo, in questo caso per esempio, abbiamo scelto un’immagine che fornisce tomcat 8 e binda la porta 8080 nel container, eseguiamo il comando run in modo che la stessa sia rimappata direttamente sul nostro host.

A questo punto digitando il comando docker ps vedremo due container in esecuzione, c’è da precisare che i filesystem sono effimeri, se i container saranno fermati e/o riavviati perderanno i dati che evete inserito, c’è modo di creare un’immagine partendo da un container in esecuzione con il comando:

E’ inoltre possibile utilizzare dischi appositi per salvare i dati ma non lo tratteremo in questo articolo introduttivo.

Con questo piccolo esempio abbiamo voluto mostrarvi le opportunità che può offrire la tecnologia dei container, consigliamo di approfondire partendo dal sito ufficiale sul quale trovate anche un simpatico tutorial: https://www.docker.com/tryit/

Un commento a Docker: container per tutte le esigenze

  1. […] Best Practices su Docker e sulle opportunità che può offrire la tecnologia dei container che può essere eseguita anche su macchine virtuali.  […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*

Accedi

Registrati | Password dimenticata?