Comment installer Docker sur Debian 10

Dans le guide d’aujourd’hui, nous allons voir Comment installer Docker sur Debian 10. Docker est un logiciel libre Open Source qui va nous permettre de concevoir, tester et déployer des applications rapidement dans des conteneurs logiciels.

Un conteneur est une enveloppe virtuelle qui permet de packager une application avec tous les éléments dont elle a besoin pour fonctionner : fichiers source, runtime, librairies, outils et fichiers.
Contrairement à la virtualisation, un conteneur n’embarque pas d’OS, il s’appuie directement sur celui du serveur sur lequel il est déployé. Ils se partagent le même noyau de système d’exploitation et isolent les processus de l’application du reste du système.

Installation de Docker

Tout d’abord, nous allons mettre à jour notre système avant l’installation :

sudo apt -y update && sudo apt -y upgrade

Ensuite, vous devrez installer les différentes dépendances nécessaires à l’installation de Docker :

sudo apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common

Dorénavant, il nous faudra importer la signature du dépôt à notre système en exécutant cette commande :

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

Puis, on ajoutera le dépôt :

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

Votre système est enfin prêt pour l’installation de Docker, il vous faudra exécuter les commandes suivantes :

sudo apt-get install docker-ce docker-ce-cli containerd.io 

Une fois l’installation réussie de Docker, utilisez la commande ci-dessous pour vérifier l’état du service :

systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-11-10 13:54:43 CET; 1min 3s ago
     Docs: https://docs.docker.com
 Main PID: 20675 (dockerd)
    Tasks: 8
   Memory: 43.6M
   CGroup: /system.slice/docker.service
           └─20675 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Maintenant, vous pouvez également tester votre installation en lançant un conteneur de test Hello World :

sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
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/

Autoriser un utilisateur non root à exécuter Docker

Initialement, les utilisateurs normaux ne disposent pas des privilèges nécessaires pour exécuter les commandes Docker. En effet le démon Docker utilise un socket Unix appartenant à l’utilisateur root.

docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.

Afin de pouvoir utiliser Docker avec un utilisateur « standard », il suffit de l’ajouter à un groupe dédié.

Premièrement, on commencera par créer un groupe « docker » si celui-ci n’existe pas déjà :

sudo groupadd docker

Puis, on ajoute notre utilisateur au groupe précédemment créé :

sudo usermod -aG docker $USER

Vous pouvez vous connecter sur votre utilisateur récemment ajouté et tester la commande suivante (si vous êtes connecté à ce même utilisateur, n’oubliez pas de vous déconnecter et reconnecter avant utilisation) :

docker run hello-world

Maintenant que nous en avons fini avec l’installation de Docker, voici quelques commandes de base pour rechercher et télécharger des images Docker, démarrer et gérer les conteneurs .

Comment utiliser Docker

Le Docker Hub contient énormément d’images de conteneurs provenant d’éditeurs de logiciels, de projets open source ou encore de la communauté.

Voici par exemple comment rechercher une image d’un conteneur Debian :

docker search debian
NAME                                               DESCRIPTION                                     
ubuntu                                             Ubuntu is a Debian-based ...
debian                                             Debian is a Linux distribution ...
arm32v7/debian                                     Debian is a Linux distribution ...
itscaro/debian-ssh                                 debian:jessie 
arm64v8/debian                                     Debian is a Linux distribution that's ...
samueldebruyn/debian-git                           a minimal docker container with ...
multiarch/debian-debootstrap                       multiarch ports of debian-debootstrap ...
i386/debian                                        Debian is a Linux distribution that's
...

Tout d’abord, pour télécharger l’image du conteneur Debian souhaitée, il vous faudra exécuter :

docker pull debian
Using default tag: latest
latest: Pulling from library/debian
c7b7d16361e0: Pull complete
Digest: sha256:41f76363fd83982e14f7644486e1fb04812b3894aa4e396137c3435eaf05de88
Status: Downloaded newer image for debian:latest
docker.io/library/debian:latest

Par la suite, pour vous assurer que vos images ont bien été téléchargées, voici la commande permettant de lister toutes vos images :

docker image
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              latest              8e9f8546050d        3 weeks ago         114MB
hello-world         latest              fce289e99eb9        10 months ago       1.84kB

Maintenant, pour créer un conteneur à partir de l’image « debian », lancez le programme bash et attachez votre shell grâce aux options -it :

docker run -i -t debian /bin/bash
debian@ServerDeb10:~$ docker run -i -t debian /bin/bash
root@071a4b0c0fce:/# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Vous pouvez à présent quitter et arrêter le conteneur en faisant un Ctrl + d.

Désormais vous êtes à nouveau sur votre machine, vous pouvez afficher la liste des conteneurs lancés avec cette commande :

docker ps
CONTAINER ID    IMAGE   COMMAND   CREATED   STATUS    PORTS   NAMES

Puisque le conteneur est arrêté, celui-ci ne s’affiche pas. Pour afficher les conteneurs arrêtés, il vous faudra ajouter l’option « -a » :

docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
071a4b0c0fce        debian              "/bin/bash"         11 minutes ago      Exited (0) 2 minutes ago                       sharp_pasteur
bb938a8793d2        hello-world         "/hello"            5 hours ago         Exited (0) 5 hours ago                         dreamy_morse
59c6bd14db66        hello-world         "/hello"            7 hours ago         Exited (0) 7 hours ago                         awesome_booth

Enfin, si vous souhaitez quitter le conteneur mais le laisser s’exécuter en arrière-plan, il faudra faire Ctrl + p + q.

Pour continuer avec les commandes de base, vous pouvez démarrer un conteneur en arrière-plan avec la commande suivante :

docker start containerID/NAME

Accédez à un conteneur démarré avec celle-ci :

docker attach containerID/NAME

Et enfin pour l’arrêter il faudra exécuter :

docker stop containerID/NAME

Finalement, la suppression d’un conteneur se fera avec la commande suivante :

docker rm containerID/NAME

D’autres articles sur Docker sont à prévoir sur https://sqx-bki.fr.

Vous savez à présent Comment installer Docker sur Debian 10 et son utilisation de base.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *