Installer Docker CE sur Debian 8 (Jessie)

Docker permet d’embarquer une application dans un container qui pourra s’exécuter sur n’importe quel machine. D’abord optimisé pour Linux, il l’est désormais pour Windows Server. C’est une technologie qui a pour but de faciliter les déploiements d’application, et la gestion du dimensionnement de l’infrastructure sous-jacente. Elle est en partie proposée en open source (sous licence Apache 2.0) par une société américaine, également appelée Docker, qui a été lancée par un Français : Solomon Hykes.

Comme le container n’embarque pas d’OS, à la différence de la machine virtuelle, il est par conséquent beaucoup plus léger que cette dernière. Il n’a pas besoin d’activer un second système pour exécuter ses applications. Cela se traduit par un lancement beaucoup plus rapide, mais aussi par la capacité à migrer plus facilement un container (du fait de son faible poids) d’une machine physique à une autre.

Le shéma suivant met en évidence les différences d’architecture en VM (à gauche) et Container (à droite).


Docker vs VM


Mettre à jour Debian 8

Mettre à jour les dépôts APT

:$ apt-get update

Mettre à jour le système si nécessaire

:$ apt-get upgrade

Désinstaller les verisons de Docker précédentes

Vérifier s’il existe déjà une version de Docker installée

:$ apt-cache policy docker
docker:
  Installé : (aucun)
  Candidat : 1.5-1
 Table de version :
     1.5-1 0
        500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages

Ce n’est pas le cas sur mon serveur. Pour désinstaller une version de Docker

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

Installer Docker CE sur Debian 8

Installer les librairies nécessaires à l’installation d’application via HTTPS pour APT

:$ apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

Installer la clef officiel GPG de Docker

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

Vérifier que l’idantifiant est bien 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

:$ apt-key fingerprint 0EBFCD88
[...]
pub   4096R/0EBFCD88 2017-02-22
 Empreinte de la clef = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

Ajouter le dépôt de Docker CE dans APT pour les architecture AMD64 (lsb_release -cs retourne la nom de la distribution de Degian, soit jessie)

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

Mettre à jour les dépôts

:$ apt-get update

Vérifier les versions disponible de Docker CE pour Debian 8

:$ apt-cache policy docker-ce
docker-ce:
  Installé : (aucun)
  Candidat : 17.06.0~ce-0~debian
 Table de version :
     17.06.0~ce-0~debian 0
        500 https://download.docker.com/linux/debian/ jessie/stable amd64 Packages
     17.03.2~ce-0~debian-jessie 0
        500 https://download.docker.com/linux/debian/ jessie/stable amd64 Packages
     17.03.1~ce-0~debian-jessie 0
        500 https://download.docker.com/linux/debian/ jessie/stable amd64 Packages
     17.03.0~ce-0~debian-jessie 0
        500 https://download.docker.com/linux/debian/ jessie/stable amd64 Packages

Docker CE recommande d’installer une version particulière plutôt que toujours installer la dernière version.

:$ apt-get install docker-ce=17.03.2~ce-0~debian-jessie

Le démon Docker est automatiquement lancé après l’installation.
Les commandes Docker doivent être lancées avec l’utilisateur root

Vérifier que Docker fonctionne

Vérifier le status de Docker

:$ systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since sam. 2017-07-15 17:50:05 CEST; 9min ago
     Docs: https://docs.docker.com
 Main PID: 29661 (dockerd)
   CGroup: /system.slice/docker.service
           ├─29661 /usr/bin/dockerd -H fd://
           └─29668 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker

Lancer hello-word dans Docker

:$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b04784fba78d: Pull complete 
Digest: sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f
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 ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

Lancer automatiquement Docker au démarrage du système

Activer le lancement automatique de docker au démarrage

:$ systemctl enable docker

Désactiver le lancement automatique de docker au démarrage

:$ systemctl disable docker

Mettre à jour Docker

Mettre à jour les dépôts APT

:$ apt-get update

Vérifier les versions disponibles et installer celle qui convient

:$ apt-cache policy docker-ce



Références :

Docker : Debian

Docker : Get Docker CE for Debian

Docker : Post Install

Laisser un commentaire