Docker Installation

Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être exécuté sur n’importe quel serveur. Il s’agit de conteneurisation et non pas de virtualisation.

Pre requis

Serveur

Nous avons un serveur qui tourne sous Debian 9 Sretch.

Désinstaller les anciennes versions

Les anciennes versions de Docker s’appellent Docker ou docker-engine, si elles sont présentes sur votre serveur il faudra les désinstaller :

1
# apt remove docker docker-engine docker.io

Le contenu des fichiers /var/lib/docker/, incluant les images, containers, volumes, et réseaux sont préservés.

Le package docker s’appelle désormais Docker CE soit docker-ce pour Docker Community Edition (CE) .

Dépendances

Installer les paquets annexes

Mise à jour des paquets :

1
# apt update

Installation de paquets pour le bon fonctionnement de docker et de son installation :

1
# apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

Installer la clé PGP

Ajouter la clé GPG officielle de Docker :

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

Vérifiez la clé en cherchant les 8 derniers caractères de l’empreinte 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88. Si la commande vous renvoie un résultat c’est ok.

1
2
3
4
5
# apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <[email protected]>
sub rsa4096 2017-02-22 [S]

Configurer les dépôts

Configuration du dépôt si ce n’est pas déjà fait :

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

Vous devriez voir 2 nouvelles lignes dans votre /etc/source.list :

1
2
deb [arch=amd64] https://download.docker.com/linux/debian stretch stable
# deb-src [arch=amd64] https://download.docker.com/linux/debian stretch stable

Installation de Docker CE

Mise à jour des packages :

1
# apt update

Installation de Docker-ce :

1
# apt install docker-ce

Vérification que Docker fonctionne correctement :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
d▓▓▓▓9c▓▓▓2d: Pull complete
Digest: sha256:▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓99788
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.
(amd64)
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://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

Problèmes

Ouverture de ports

Si vous avez ce message :

1
2
3
4
# docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

Il faut certainement ouvrir les ports http, https sur votre firewall.

Empêcher Docker de manipuler IPTables

Si vous ne voulez pas que docker manipule vos règles iptables : https://n0tes.fr/2019/05/11/Docker-et-IPtables/

Mise à jour de Docker CE

Pour mettre à niveau Docker CE :

1
# apt update

Suivre ensuite les instructions d’installation, en choisissant la nouvelle version à installer.

Désinstaller Docker CE

Pour désinstaller Docker :

1
# apt purge docker-ce

Les images, conteneurs, volumes et fichiers de configuration personnalisés ne sont pas supprimés.

Pour supprimer toutes les images, les conteneurs et les volumes :

1
# rm -rf /var/lib/docker

Les fichiers de configuration modifiés seront en revanche à supprimer manuellement.

Documentation

https://docs.docker.com/install/linux/docker-ce/debian/
https://fr.wikipedia.org/wiki/Docker_(logiciel)

Partager