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
- Assurez-vous que vos packages système sont à jour
- Désinstaller les versions précédentes, le cas échéant
- Installer le moteur Docker à l'aide du référentiel
- Installer le moteur Docker à partir d'un package
- Installer à l'aide du script pratique
- Vérifier l'installation
- Exécuter la commande Docker sans Sudo
- 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 docker
, docker.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 amd64
, armhf
, 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.