Guida su Come Installare Docker su Ubuntu
Docker è un progetto opensource che automatizza il deployment di applicazioni all’interno di container software, fornendo un’astrazione addizionale grazie alla virtualizzazione a livello di sistema operativo di Linux.
Utilizza le funzionalità di isolamento delle risorse del kernel Linux come ad esempio cgroups e namespaces per consentire a “container” indipendenti di coesistere sulla stessa istanza di Linux, evitando l’installazione e la manutenzione di una macchina virtuale.
Avendo Docker installato, è possibile eseguire un applicativo indipendentemente dal sistema operativo, facilitando così il deploy delle applicazioni, l’idea di avere un contenitore non è un concetto nuovo.
Saremo capaci di spostare il nostro software da un sistema a un altro in modo indipendente e portabile.
Il nostro software, per poter essere eseguito correttamente, avrà bisogno di una serie di dipendenze o librerie di sistema.
Però dipendendo dal tipo di applicazione potremmo avere ad esempio la necessità di aver installata una certa versione di Java, un application server, un web server, un database o altri elementi che devono comunicare con il nostro software.
Il lavoro che svolge, è quello di creare un contenitore che conterrà tutte quelle cose che la mia applicazione può aver bisogno, in questo modo potremo copiare o spostare il nostro contenitore in una qualsiasi macchina che disponga di Docker ed eseguire il software senza la necessità di dover configurare niente.
Per il momento questa compatibilità non è ancora al 100%, infatti un contenitore sviluppato in un sistema Linux non potrà essere eseguito direttamente in una macchina Windows o Mac OS.
In questo caso dovremo virtualizzare precedentemente un sistema Linux e successivamente saremo capaci di eseguire con Docker il nostro software.
Docker è uno strumento disegnato per facilitare il lavoro a sviluppatori, tester e amministratori di sistema.
Quali sarebbero quindi le differenze rispetto a una macchina virtuale?
Il concetto è molto simile, la differenza sostanziale è che una macchina virtuale ha bisogno di un sistema operativo per poter funzionare e questo rende più complesso il lavoro di spostarla o duplicarla, con Docker eviteremo queste operazioni.
Installiamo Docker
Adesso procederemo con l’installazione in un sistema Ubuntu Linux, dell’ultima versione disponibile del software, prima di tutto dobbiamo assicurarci di avere una distribuzione a 64 bit (x86_64) dato che non può essere installato su distribuzioni a 32 bit, controlliamo attraverso il terminale di Ubuntu quale versione abbiamo installato:
uname -m
e con il comando:
cat /etc/issue
avremo anche il nome della distribuzione, nel mio caso risulta essere: Ubuntu 15.10 \n \l.
A questo punto possiamo continuare con il processo di installazione, aggiungiamo la chiave gpg del repository ppa con il seguente comando:
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Adess apriamo il seguente file con gedit:
sudo gedit /etc/apt/sources.list.d/docker.list
Ed inseriamo la linea di codice relativa alla nostra distribuzione (nel mio caso Ubuntu 15.10 come visto dal comando lanciato dal terminale sopra), ed incolliamola nel file che abbiamo aperto.
# Ubuntu Trusty 14.04 (LTS) deb https://apt.dockerproject.org/repo ubuntu-trusty main # Ubuntu Wily 15.10 deb https://apt.dockerproject.org/repo ubuntu-wily main
Salviamo il file e lanciamo il seguente comando per fare l’update dei pacchetti:
sudo apt-get update
Ripuliamo il sistema dalle vecchie versioni di Docker (se l’avevamo già installato in precedenza):
sudo apt-get purge lxc-docker*
Passiamo ad installare le dipendenze necessarie:
sudo apt-get install linux-image-extra-$(uname -r)
Ed adesso andiamo ad installare Docker:
sudo apt-get install docker-engine
E poi avviamo il demone:
sudo service docker start
Se tutto è andato per il verso giusto lanciando questo comando
sudo docker run hello-world
dovremmo avere visualizzato il seguente messaggio:
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world b901d36b6f2f: Pull complete 0a6ba66e537a: Pull complete Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7 Status: Downloaded newer image for hello-world:latest Hello from Docker. This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker Hub account: https://hub.docker.com For more examples and ideas, visit: https://docs.docker.com/userguide/
Adesso avviamo una shell:
sudo docker run -it ubuntu bash
e il risultato sarà il seguente:
Unable to find image 'ubuntu:latest' locally latest: Pulling from library/ubuntu 0a85502c06c9: Pull complete 0998bf8fb9e9: Pull complete a6785352b25c: Pull complete e9ae3c220b23: Pull complete Digest: sha256:f91f9bab1fe6d0db0bfecc751d127a29d36e85483b1c68e69a246cf1df9b4251 Status: Downloaded newer image for ubuntu:latest root@f90380be0f6d:/# ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr root@8f90380be0f6d:/#
Adesso siamo all’interno del nostro contenitore e possiamo modificarlo come più ci piace.