GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer et configurer docker sur Debian 11

Docker est une plateforme de conteneurisation open source. Il permet aux développeurs de regrouper des applications dans des conteneurs :des composants exécutables standardisés combinant le code source de l'application avec les bibliothèques et les dépendances du système d'exploitation (OS) nécessaires pour exécuter ce code dans n'importe quel environnement.

Docker est un ensemble de plates-formes en tant que produits de service qui utilisent la virtualisation au niveau du système d'exploitation pour fournir des logiciels dans des packages appelés conteneurs. Les conteneurs sont isolés les uns des autres et regroupent leurs propres logiciels, bibliothèques et fichiers de configuration ; ils peuvent communiquer entre eux par des canaux bien définis.

Consultez également ces liens :

  • Comment installer et utiliser Docker dans Ubuntu 20.04
  • Comment installer et configurer docker dans Centos 8
  • Comment installer et configurer docker dans Fedora 34/35
  • Premiers pas avec Docker Compose avec des exemples
  • Docker en tant qu'agent de build :exécutez les builds Jenkins sur Docker

Prérequis

Pour suivre, assurez-vous d'avoir :

  • Un système Debian 11 à jour
  • Accès Internet depuis le système
  • Accès root ou utilisateur avec accès sudo
  • Connaissance du terminal Linux

Table des matières

  1. Assurez-vous que vos packages système sont à jour
  2. Désinstaller les versions précédentes, le cas échéant
  3. Installer le moteur Docker à l'aide du référentiel
  4. Installer le moteur Docker à partir d'un package
  5. Installer à l'aide du script pratique
  6. Vérifier l'installation
  7. Exécuter la commande Docker sans Sudo
  8. Désinstaller Docker lorsqu'il n'est plus nécessaire

1. Assurez-vous que vos packages système sont à jour

Avant de continuer, laissez-nous nous assurer que vos packages sont mis à jour

sudo apt update
sudo apt upgrade -y

2. Désinstallez les versions précédentes le cas échéant

Les packages fournissant des versions plus anciennes de Docker sont dockerdocker.io , ou docker-engine .
Utilisons cette commande pour nous assurer que ces packages n'existent pas dans notre système :

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

Ce n'est pas grave si apt-get signale qu'aucun de ces packages n'est installé.

Installer Docker

Vous pouvez installer Docker Engine de différentes manières, selon vos besoins :

  • Vous pouvez configurer des référentiels Docker et installer Docker à l'aide d'apt
  • Vous pouvez télécharger les packages DEB et les installer manuellement
  • Vous pouvez choisir d'utiliser des scripts pratiques automatisés pour installer Docker

3. Installer le moteur Docker à l'aide du référentiel

Sur un nouvel hôte, les référentiels Docker n'existent pas. Pour la première fois sur une nouvelle machine hôte, vous devez configurer le référentiel Docker. Ensuite, vous pouvez installer et mettre à jour Docker à partir du référentiel.

Installons les packages suivants pour permettre à apt d'utiliser un référentiel via HTTPS :

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Ajoutez la clé GPG officielle de Docker :

 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gp

Utilisez la commande suivante pour configurer le référentiel stable. Pour ajouter le nocturne ou tester référentiel, ajoutez le mot nightly ou test (ou les deux) après le mot stable dans les commandes ci-dessous.

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Installer le moteur Docker

Mettez à jour l'index des packages apt depuis que nous avons ajouté un nouveau référentiel :

sudo apt-get update

Installons maintenant la dernière version de Docker Engine et conteneurd usi

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

Facultatif :Installer une version spécifique

Si vous avez des exigences qui nécessitent une version spécifique, vous pouvez le faire. Pour installer une version spécifique :
1. Répertoriez les versions disponibles dans votre référentiel :

$ sudo apt-cache madison docker-ce
 docker-ce | 5:20.10.9~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
 docker-ce | 5:20.10.8~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
 docker-ce | 5:20.10.7~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
 docker-ce | 5:20.10.6~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages

Vous pouvez désormais installer une version spécifique à l'aide de la chaîne de version de la deuxième colonne, par exemple 5:20.10.7~3-0~debian-bullseye .

sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

Exemple :

sudo apt-get install docker-ce=5:20.10.7~3-0 docker-ce-cli=5:20.10.7~3-0 containerd.io

Une fois l'installation terminée, le démon Docker démarre automatiquement.

4. Installer le moteur docker à partir d'un package

Si vous ne pouvez pas utiliser le référentiel de Docker pour installer Docker Engine, vous pouvez télécharger le .deb fichier correspondant à votre version et installez-le manuellement. Vous devez télécharger un nouveau fichier chaque fois que vous souhaitez mettre à niveau Docker.

Accédez à https://download.docker.com/linux/debian/dists/, choisissez votre version Debian - (Bullseye), puis accédez à pool/stable/ , choisissez amd64armhf , ou arm64 , et téléchargez le fichier .deb pour la version de Docker Engine que vous souhaitez installer.

Installez Docker Engine, en remplaçant le chemin ci-dessous par le chemin où vous avez téléchargé le package Docker.

 sudo dpkg -i /path/to/package.deb

Une fois l'installation terminée, le démon Docker démarre automatiquement.

5. Installer à l'aide du script pratique

Docker fournit un script pratique sur get.docker.com pour installer Docker dans des environnements de développement rapidement et de manière non interactive.

Cet exemple télécharge le script depuis get.docker.com et l'exécute pour installer la dernière version stable de Docker sous Linux :

 curl -fsSL https://get.docker.com -o get-docker.sh
 sudo sh get-docker.sh

6. Vérifier l'installation

Lors de l'installation, docker s'exécutera en tant que démon. Pour vérifier que docker est en cours d'exécution, nous utilisons le systemctl status docker commande :

$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-10-19 04:10:32 UTC; 4min 16s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 13456 (dockerd)
      Tasks: 7
     Memory: 39.0M
        CPU: 265ms
     CGroup: /system.slice/docker.service
             └─13456 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789071579Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789278242Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/container>
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789447226Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.059851510Z" level=info msg="Loading containers: start."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.267528805Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemo>
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.337295417Z" level=info msg="Loading containers: done."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363462993Z" level=info msg="Docker daemon" commit=79ea9d3 graphdriver(s)=overlay2 version=20.10.9
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363783617Z" level=info msg="Daemon has completed initialization"

Le Active: active (running) montre que docker a démarré avec succès.

Nous pouvons exécuter un hello-world image pour tester que docker fonctionne comme prévu :

 sudo docker run hello-world

Cette commande télécharge une image de test et l'exécute dans un conteneur. Lorsque le conteneur s'exécute, il imprime un message d'information et se ferme.

J'ai obtenu cette sortie, montrant que cela fonctionne bien :

$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

7. Exécuter la commande Docker sans Sudo

Par défaut, la commande docker ne peut être exécutée que par l'utilisateur root ou par un utilisateur du groupe docker, qui est automatiquement créé lors du processus d'installation de Docker. Si vous essayez d'exécuter la commande docker sans la préfixer avec sudo ou sans faire partie du groupe docker, vous obtiendrez une sortie comme celle-ci :

$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

Si vous voulez éviter de taper sudo chaque fois que vous exécutez la commande docker, ajoutez votre nom d'utilisateur au groupe docker :

sudo usermod -aG docker ${USER}

Pour appliquer la nouvelle adhésion au groupe, déconnectez-vous du serveur et reconnectez-vous, ou saisissez ce qui suit :

sudo su - ${USER}

Vous serez invité à saisir votre mot de passe utilisateur pour continuer.

Confirmez que votre utilisateur est maintenant ajouté au groupe Docker en tapant :

id -nG

Je vois ceci, confirmant que j'appartiens maintenant au groupe docker

$ id -nG
admin docker

Maintenant je peux faire docker sans sudo :
Testons en exécutant image.

$ docker run --rm -it --name alpine --entrypoint /bin/sh alpine:3
Unable to find image 'alpine:3' locally
3: Pulling from library/alpine
a0d0a0d46f8b: Pull complete
Digest: sha256:e1c082e3d3c45cccac829840a25941e679c25d438cc8412c2fa221cf1a824e6a
Status: Downloaded newer image for alpine:3
/ #

Nous avons installé avec succès docker dans notre système !

8. Désinstaller Docker lorsqu'il n'est plus nécessaire

Pour effacer complètement Docker Engine du système, nous devons désinstaller les packages Docker Engine, CLI et Containerd :

 sudo apt-get purge docker-ce docker-ce-cli containerd.io -y

Les images, conteneurs, volumes ou fichiers de configuration personnalisés sur votre hôte ne sont pas automatiquement supprimés. Pour supprimer toutes les images, conteneurs et volumes :

 sudo rm -rf /var/lib/docker
 sudo rm -rf /var/lib/containerd

Vous devez supprimer manuellement tous les fichiers de configuration modifiés.

Conclusion

Dans ce guide, nous avons réussi à installer docker sur notre système Debian 11.


Debian
  1. Comment installer et utiliser Docker sur Debian 9

  2. Comment installer Docker et Docker Compose sur Debian 11

  3. Comment installer et configurer Mariadb 10 dans Debian 11

  4. Comment installer et configurer MongoDB 5 sur Debian 11

  5. Comment installer et configurer Redis 6 sur Debian 11

Comment installer Docker sur Debian 11

Comment installer et configurer RabbitMQ sur Debian 11

Comment installer et configurer Memcached sur Debian 11

Comment installer Docker sur Debian 10

Comment installer et configurer Git dans Debian 11

Comment installer et configurer Apache sur Debian 11 ?