Docker est un logiciel open source permettant de créer et d'exécuter facilement des applications dans un environnement isolé appelé conteneurs à partir de n'importe quelle application. Il fournit un moyen efficace de regrouper des applications avec leurs bibliothèques et autres dépendances dans une unité standardisée pour le développement de logiciels.
Les conteneurs Docker sont beaucoup plus rapides et efficaces qu'une machine virtuelle car ils n'ont pas besoin d'exécuter un système d'exploitation complet, juste l'exécutable qui sert l'application.
Ici, nous verrons comment installer Docker Comunity Edition (CE) sur Debian 11.
Remarque : Docker nécessite une version 64 bits du système d'exploitation Debian.
Installer Docker sur Debian 11
Supprimer les anciennes versions
Tout d'abord, désinstallez les anciennes versions des packages Docker appelés docker ou docker-engine, ainsi que les dépendances de votre système. Cependant, cette désinstallation ne supprimera pas les volumes, images et réseaux Docker existants trouvés dans le répertoire /var/lib/docker/.
sudo apt remove -y docker docker-engine docker.io containerd runc
Configurer le référentiel Docker
Installez les packages ci-dessous pour permettre à apt de prendre en charge la méthode HTTPS.
sudo apt update sudo apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
Ajoutez la clé GPG de Docker à votre système.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Ajoutez le référentiel Docker au système en exécutant la commande ci-dessous.
echo "deb [arch=amd64 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
Mettre à jour l'index du référentiel.
sudo apt update
Installer le moteur Docker
Installez Docker Engine à l'aide de la commande apt.
sudo apt install -y docker-ce docker-ce-cli containerd.io
Vérifiez la version de Docker après l'installation.
docker -v
Sortie :
Docker version 20.10.8, build 3967b7d
À présent, le service Docker devrait être opérationnel.
sudo systemctl status docker
Sortie :
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-08-21 12:31:37 CDT; 1min 39s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 18894 (dockerd) Tasks: 8 Memory: 31.3M CPU: 448ms CGroup: /system.slice/docker.service └─18894 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192715381-05:00" level=info msg="scheme \"unix\" not registered, fallback to default s> Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192736530-05:00" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///r> Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192749042-05:00" level=info msg="ClientConn switching balancer to \"pick_first\"" modu> Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.429344966-05:00" level=info msg="Loading containers: start."
Vérifier l'installation de Docker
Pour tester l'installation de Docker, nous allons exécuter le conteneur hello-world.
sudo docker run hello-world
La sortie ci-dessous confirme que vous avez correctement installé Docker Engine sur le système d'exploitation Debian.
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world b8dfde127a29: Pull complete Digest: sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 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 les utilisateurs non root à exécuter les commandes Docker
Par défaut, les utilisateurs réguliers n'ont pas les privilèges pour exécuter les commandes Docker car le démon Docker utilise un socket Unix appartenant à l'utilisateur root.
docker run hello-world
Sortie :
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.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied.
Pour permettre aux utilisateurs Linux réguliers d'exécuter des conteneurs Docker sans préfixer sudo, suivez les étapes ci-dessous.
Créez un groupe appelé docker s'il n'existe pas.
sudo groupadd docker
Créez un utilisateur si nécessaire. Remplacez itzgeek par votre nom d'utilisateur.
sudo useradd -m -s /bin/bash itzgeek
Ajoutez l'utilisateur au groupe docker.
sudo usermod -aG docker itzgeek
Déconnectez-vous et reconnectez-vous, puis exécutez les commandes Docker sans préfixer sudo.
docker run hello-world
Sujets intéressants
Sujets de base de Docker
1 :Principales commandes Docker importantes – Utilisation des conteneurs Docker
2 :Travailler avec des images Docker – Créer des images Docker
3 : Comment créer des images Docker avec DockerFile
Sujets avancés Docker
1 : Comment configurer le registre privé Docker sur CentOS 7
2 :Comment installer et configurer Docker Swarm sur CentOS 7
Conclusion
C'est tout. J'espère que vous avez appris à installer Docker Engine sur Debian 11.