Introduction aux containers Docker

Docker est un logiciel open source qui permet d’automatiser le déploiement d’applications en les empaquetant, ainsi que ses dépendances dans des containers virtuels. La force de ce concept est que ses containers peuvent ensuite être déployé sur n’importe plateforme où peut être installer l’API de Docker.

Le Concept

Docker s’appuie à la base sur le format de Conteneur Linux standard LXC auquel il a adossé une API qui permet d’exécuter des processus de manière isolée. En effet, contrairement aux machines virtuelles classiques qui utilisent un système hôte (“guest OS”), les conteneurs Docker ne contiennent que les applications/librairies en utilisant le système d’exploitation de l’infra.

La figure ci-dessous résume bien le concept:

Comme c’est le système hôte qui lance directement les conteneurs son éxécution est aussi rapide que si il s’èxècutait directement sur celui-ci. De plus même si nous ne sommes pas sur une machine virtuelle les ressources utilisé par le container sont isolés de son hote. Un container Docker, un dockerfile, est un simple fichier texte qui définit une séquence de commandes UNIX. Ces commandes vont s’exécuter les unes après les autres permettant pour finaliser l’installation d’une application. On retrouve le principe d’héritage car un conteneur peut en utiliser un autre pour en étendre ses fonctionnalités. Du coup les conteneurs sont très léger et peuvent être stocké sur un repository central pour être utilisé par d’autres instance docker.

Disponibilité de Docker

Docker est disponible sur les plateformes suivantes :

  • Les distributions Linux : Ubuntu, Fedora, RHEL, Centos, Gentoo, ArchLinux, openSUSE, CRUX,…
  • Les système de cloud : Amazon EC2, Google Compute Engine et Rackspace.
  • Les systèmes d’exploitations Mac Os X et Windows. Sous Windows Docker s’appuie sur une mini VM Linux tournant sous VirtualBox packagé dans le produit Docker ToolBox.

Installation de Docker sur Ubuntu

Docker est disponible sur toutes les versions disponibles d’Ubuntu et ce depuis la version 12.04 L.T.S. Ici je ne documenterai que l’installation sur Ubuntu 16.04. Pour les autres versions je vous renvoi sur la page du projet : docs.docker.com

Le package docker.io disponible sur cette version d’Ubuntu utilise la version 1.12 de docker. Par conséquent nous allons utiliser le dépôt du projet : Dans une fenêtre Terminal Ctrl+Alt+T tapez les commandes suivantes :

sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
sudo apt-get install apt-transport-https ca-certificates
sudo apt-key adv \
               --keyserver hkp://ha.pool.sks-keyservers.net:80 \
               --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudo sh -c "echo deb https://apt.dockerproject.org/repo ubuntu-xenial main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
apt-cache policy docker-engine

Cette dernière opération devrait vous retourner ceci :

 docker-engine:
    Installed: 1.12.2-0~trusty
    Candidate: 1.12.2-0~trusty
    Version table:
   *** 1.12.2-0~trusty 0
          500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
          100 /var/lib/dpkg/status
       1.12.1-0~trusty 0
          500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
       1.12.0-0~trusty 0
          500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages

Pour terminer l’installation :

sudo apt-get install docker-engine
sudo service docker start

Quittez votre session et reconnectez vous.

Tester Docker

Pour vérifier que l’installation de Docker est terminé lançons simplement les commandes suivantes :

sudo groupadd docker
sudo usermod -aG docker $USER

Test du premier container :

sudo docker run hello-world

Normalement cette commande va télécharger tout ce qu’il faut pour créer un container.

Plus d’infos : docker.com


comments powered by Disqus