Containers linux : Docker

Il 17 marzo 2017 è stato rilasciato Docker Enterprise Edition ( Docker EE ) si tratta di una versione di Docker otimizzata per implementazioni business-critical e supportata da Docker Inc.
Conseguentemente l’engine Docker gratuito è stato rimoninato in Docker Community Edition ( Docker CE ).   Edizioni di Dockers funzionalità

dockerDocker  consente l’esecuzione di applicazioni con le relative dipendenze in un container virtuale isolato dal sistema operativo.  Di fatto le applicazioni possono coincidere con un sistema operativo quasi completo evitando in questo modo la necessità di una macchina virtuale. Aspetti positivi: minori risorse, maggior velocità  di avvio, evitare i problemi di gestione di una macchina virtuale. Aspetto negativo l’isolamento rnon è totale e le risorse a disposizione del container sono meno garantite. Docker che si esegue in modo nativo su macchine Linux gira anche su OS e Windows.

Per far questo Docker utilizza le funzionalità del kernel e in linux in particolare cgroups, namespace e aufs . I cgroups forniscono l’isolamento delle risorse: CPU, memoria, dispositivi a blocchi di I/O, rete… I namespace consentono l’isolamento di ambiente operativo, albero di processi  files system montati, albero processi, utenti…

Come da grafico Docker può utilizzare diverse interfacce  per accedere alle funzionalità di virtualizzazione del Kernel linux. Dalla versione 0.9 utilizza libcontainer in aggiunta a libvirt, LXC e systemd-nspawn. Docker wikipedia.

L’installazione  di Docker CE in Ubuntu

Docker-CE non è presente nei repository standard di Ubuntu per la sua installazione si fa riferimento al repository specifico.

Installazione ripresa da https://docs.docker.com/install/linux/docker-ce/ubuntu/

Installazione del Repository di Docker

Rimozione delle versioni precedenti di Docker  con nome docker o docker-engine

 sudo apt-get remove docker docker-engine docker.io

 

$ sudo apt update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

Aggiungere la key GPG ufficiale

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

fingerprint

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

$ sudo apt-key fingerprint 0EBFCD88

pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid    Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

Impostare il repository stable di Ubuntu

$ sudo add-apt-repository \
   deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Installare Docker CE

$ sudo apt-get update

installare l’ultima versione di Docker-CE

$ sudo apt-get install docker-ce

Verificare che docker sia installato corettamente

$ sudo docker run hello-world

Installare Docker Compose

per installare la versione 1.21.2 :  https://docs.docker.com/compose/install/

 

udo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

attribuire i permessi di eseguibilità

sudo chmod +x /usr/local/bin/docker-compose

Test dell’installazione

$ docker-compose --version
docker-compose version 1.21.2, build 1719ceb

 

Installazione della versione precedenti di Docker

Le versioni precedenti di Docker

docker

La versione di Docker corrente è 1.12.2, build bb80604.

$ docker -v  
Docker version 1.12.2, build bb80604

Per visualizzare le informazioni su docker utilizzare il comando info 

$ docker info  
Containers: 11
 Running: 3
 Paused: 2
 Stopped: 6
Images: 6
Server Version: 1.12.2
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 14
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge null host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options:
Kernel Version: 3.16.0-4-amd64
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: x86_64
...
Docker Root Dir: /var/lib/docker
...
Annunci