Recherche de site Web

Installer Docker Engine et Docker Compose sur Ubuntu


Dans ce guide, nous verrons ce qu'est Docker, comment installer Docker Engine sur Ubuntu Linux. De plus, nous verrons également comment installer Docker Compose, un outil pour définir et exécuter des applications Docker multi-conteneurs.

Ce guide a été officiellement testé sur Ubuntu 24.04 LTS et 22.04 LTS. Cependant, il devrait fonctionner sur des versions plus anciennes telles que 20.04 LTS et 18.04 LTS. Pour une meilleure sécurité et stabilité, je vous recommande d'utiliser la version la plus récente, Ubuntu 24.04 LTS.

1. Qu'est-ce que Docker ?

Docker est une technologie de virtualisation rapide, légère et au niveau du système d'exploitation pour les développeurs et les administrateurs système qui veulent créer une application avec toutes les dépendances nécessaires, et l'expédier en un seul paquet.

Contrairement à d'autres méthodes de virtualisation, telles que VMWare, Xen et VirtualBox, il n'est pas nécessaire d'avoir un système d'exploitation invité séparé pour chaque machine virtuelle.

Tous les conteneurs Docker partagent efficacement le noyau du système d'exploitation hôte. Chaque conteneur fonctionnera dans un espace utilisateur isolé dans le même système d'exploitation.

Les conteneurs Docker fonctionneront également sur n'importe quelle variante de Linux. Disons que vous utilisez Fedora, et que j'utilise Ubuntu. Nous pouvons toujours développer, partager et distribuer les images Docker entre nous.

Vous n'avez pas à vous soucier du système d'exploitation, des logiciels, des paramètres personnalisés ou de quoi que ce soit. Nous pouvons continuer le développement tant que nous avons Docker installé sur notre système hôte. En termes simples, Docker fonctionnera partout !

Vous lisez deux termes dans les paragraphes ci-dessus à savoir images Docker et conteneurs Docker. Vous pourriez vous demander ce qu'ils sont et quelle est la différence entre eux.

En termes simples, une image Docker est un fichier qui décrit comment un conteneur doit se comporter, tandis qu'un conteneur Docker est l'état en cours d'exécution (ou arrêté) de l'image Docker.

J'espère que vous avez une idée de base sur Docker. Consultez le guide officiel de l'utilisateur Docker pour plus de détails. Le lien est joint à la fin de ce guide.

2. Exigences Docker

Pour installer et configurer Docker, votre système doit répondre aux exigences minimales suivantes.

  1. 64 bits systèmes d'exploitation Linux ou Windows.
  2. Si vous êtes sur Linux, la version du noyau doit être 3.10 ou supérieure.
  3. Un compte utilisateur avec des privilèges sudo.
  4. VT (technologie de virtualisation) activé dans le BIOS de votre système. [Lire : Comment savoir si un CPU prend en charge la technologie de virtualisation (VT)]
  5. Votre système doit être connecté à Internet.

Sous Linux, pour vérifier les détails du noyau et de l'architecture, exécutez la commande suivante depuis le Terminal :

uname -a

Exemple de sortie :

Linux Ubuntu22CT 5.15.35-3-pve #1 SMP PVE 5.15.35-6 (Fri, 17 Jun 2022 13:42:35 +0200) x86_64 x86_64 x86_64 GNU/Linux

Comme vous le voyez dans la sortie ci-dessus, la version du noyau de mon système Ubuntu est 5.15.35-3-pve et l'architecture de mon système Ubuntu est 64 bits (x86_64 x86_64 x86_64 GNU/Linux). Vérifiez les lettres en gras dans le résultat ci-dessus.

Attention : Ici, j'utilise un conteneur Ubuntu 22.04 dans Proxmox. C'est pourquoi vous voyez le mot "pve" dans la version du noyau dans la sortie ci-dessus. Si vous utilisez une machine Ubuntu physique (ou virtuelle), vous verrez 5.15.35-3-generic comme version du noyau.

Eh bien, la version du noyau est supérieure à la configuration minimale requise, et l'architecture est 64 bits. Donc, nous pouvons installer et utiliser Docker sans aucun problème.

Veuillez noter qu'il n'importe pas quelle version d'Ubuntu vous utilisez. De plus, il n'importe pas si vous utilisez Ubuntu Desktop ou Ubuntu Server ou toute autre variante d'Ubuntu comme Lubuntu, Kubuntu, Xubuntu.

Docker fonctionnera très bien tant que votre système dispose du noyau version 3.10 ou plus, et que l'architecture de votre système est en 64 bits.

3. Installer Docker sur Ubuntu 24.04 LTS

Tout d'abord, mettez à jour votre système Ubuntu.

3.1. Mettre à jour Ubuntu

Ouvrez votre terminal et exécutez les commandes suivantes une par une :

sudo apt update
sudo apt upgrade
sudo apt full-upgrade

3.2. Ajouter le dépôt officiel Docker

Tout d'abord, installez les certificats nécessaires et permettez au gestionnaire de paquets apt d'utiliser un dépôt via HTTPS en utilisant la commande :

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

Ensuite, ajoutez la clé GPG officielle de Docker en exécutant les commandes suivantes :

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

Ajoutez le dépôt officiel de Docker :

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

Mettre à jour la liste des sources d'Ubuntu en utilisant la commande :

sudo apt update

3.3. Installer Docker Engine, Docker CLI et Docker Compose

Enfin, exécutez la commande suivante pour installer la dernière version de Docker CE sur le serveur Ubuntu 22.04 LTS :

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Installer Docker sur Ubuntu

Vous pouvez, bien sûr, installer également une version spécifique de Docker. Pour vérifier la liste des versions de Docker disponibles, exécutez :

apt-cache madison docker-ce

Exemple de sortie :

 docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages

Vous pouvez choisir n'importe quelle version disponible dans la liste ci-dessus et l'installer. Par exemple, pour installer la version 5:20.10.16~3-0~ubuntu-jammy, exécutez :

sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io

Une fois installé, vérifiez si le service Docker fonctionne avec la commande :

systemctl status docker

Vous verrez une sortie quelque chose comme ci-dessous.

* docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-06-27 13:07:43 UTC; 3min 4s ago
TriggeredBy: * docker.socket
       Docs: https://docs.docker.com
   Main PID: 2208 (dockerd)
      Tasks: 8
     Memory: 29.6M
        CPU: 126ms
     CGroup: /system.slice/docker.service
             `-2208 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071453522Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071459974Z" level=info msg="ClientConn switching balancer to \"pick_first\"" >
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.130989294Z" level=info msg="Loading containers: start."
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.187439756Z" level=info msg="Default bridge (docker0) is assigned with an IP a>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.235966874Z" level=info msg="Loading containers: done."
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240149866Z" level=warning msg="Not using native diff for overlay2, this may c>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240281966Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=over>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240386856Z" level=info msg="Daemon has completed initialization"
Jun 27 13:07:43 Ubuntu22CT systemd[1]: Started Docker Application Container Engine.
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.276336600Z" level=info msg="API listen on /run/docker.sock"

Super ! Le service Docker est opérationnel !

Si ce n'est pas déjà démarré, exécutez la commande suivante pour démarrer le service Docker.

sudo systemctl start docker

Activer le service Docker pour qu'il démarre automatiquement à chaque redémarrage :

sudo systemctl enable docker

La version de Docker installée peut être trouvée en utilisant la commande :

sudo docker version

Exemple de sortie :

Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:02:46 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:00:51 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
Vérifier la version de Docker

3.4. Test de Docker

Allons-y et testons si Docker fonctionne ou non.

Pour ce faire, exécutez :

sudo docker run hello-world

La commande ci-dessus téléchargera une image Docker de test et exécutera un programme exemple hello_world à l'intérieur du conteneur.

Si vous voyez une sortie ressemblant à celle ci-dessous, félicitations ! Docker fonctionne correctement sur notre système Ubuntu.

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:13e367d31ae85359f42d637adf6da428f76d75dc9afeb3c21faea0d976f5c651
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/

Exécuter le conteneur Docker Hello World

Super ! Docker est prêt à être utilisé.

J'ai installé Docker, et maintenant ? Consultez le prochain article de cette série pour apprendre les bases de Docker.

À lire ensuite : Commencer avec Docker

3.5. Mettre à jour Docker

Pour mettre à niveau le moteur Docker vers la dernière version disponible, faites simplement :

sudo apt update
sudo apt upgrade
sudo apt full-upgrade

3.6. Exécuter Docker en tant qu'utilisateur non root sous Linux (Optionnel)

Par défaut, le démon Docker se lie à un socket Unix au lieu d'un port TCP. Étant donné que ce socket Unix appartient à l'utilisateur root, le démon Docker ne fonctionne que sous l'utilisateur root. Par conséquent, les utilisateurs normaux ne peuvent pas exécuter la plupart des commandes Docker.

Si vous voulez exécuter Docker en tant qu'utilisateur non root sur Linux, référez-vous au guide suivant :

Comment exécuter Docker en tant qu'utilisateur non root sous Linux

Personnellement, je n'utilise pas cela et ne le recommande pas non plus. Si vous n'exposez pas votre système à Internet, c'est acceptable. Cependant, ne lancez pas Docker en tant qu'utilisateur non root sur un système de production.

4. Installer Docker Compose sur Ubuntu

Docker Compose est un outil qui peut être utilisé pour définir et exécuter des applications Docker multi-conteneurs. Avec Compose, vous utilisez un fichier Compose pour configurer les services de votre application. Ensuite, en utilisant une seule commande, vous pouvez créer et démarrer tous les services de votre configuration.

Nous pouvons installer Docker Compose en utilisant l'une des méthodes suivantes.

4.1. Méthode 1 - Installer Docker Compose en utilisant le binaire

Téléchargez la dernière version de Docker Compose ici.

Au moment de la rédaction de ceci, la dernière version était 2.6.1.

Exécutez la commande suivante pour télécharger le fichier Docker Compose stable le plus récent :

sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Si une nouvelle version est disponible, remplacez simplement le numéro v2.6.1 dans la commande ci-dessus par le nouveau numéro de version. N'oubliez pas de préfixer "v" avant le numéro de version.

Enfin, appliquez les permissions d'exécution au binaire en utilisant la commande :

sudo chmod +x /usr/local/bin/docker-compose

Pour vérifier la version de Docker Composer installée, exécutez :

$ docker-compose version
Docker Compose version v2.6.1

4.2. Méthode 2 - Installer Docker Compose en utilisant PiP

Alternativement, nous pouvons installer Docker Compose en utilisant PIP. Pip est un gestionnaire de paquets Python utilisé pour installer des applications écrites en langage de programmation Python.

Référez-vous au guide suivant pour installer Pip sur votre système.

Comment gérer les packages Python avec Pip

Une fois pip installé, exécutez la commande suivante pour installer docker compose. La commande suivante est la même pour toutes les distributions Linux !

pip install docker-compose

Après avoir installé Docker Compose, vous pouvez vérifier la version avec la commande :

docker-compose --version

Vous verrez une sortie quelque chose comme ci-dessous.

docker-compose version 2.6.1, build 8a1c60f6

Félicitations ! Nous avons installé avec succès Docker Community Edition et Docker Compose.

Lisez notre guide d'introduction à Docker Compose pour apprendre comment utiliser Docker Compose en temps réel afin de définir et de gérer des conteneurs.

Commencer avec Docker Compose sous Linux

4.3. Mettre à jour Docker Compose

Pour mettre à jour Docker Compose, il suffit de télécharger le fichier de paquet plus récent et de répéter les instructions d'installation comme indiqué dans la Méthode 1. Si vous avez installé Compose en utilisant Pip, vous pouvez mettre à jour Docker Compose en utilisant la commande suivante :

pip install --upgrade docker-compose

5. Désinstaller Docker Engine

Pour supprimer Docker Engine de votre système Ubuntu, exécutez :

sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin

Les images Docker, conteneurs, volumes ou fichiers de configuration personnalisés sur votre système ne sont pas supprimés automatiquement.

Vous devez supprimer manuellement toutes les images, conteneurs et volumes en utilisant les commandes suivantes :

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

6. Désinstaller Docker Compose

Si vous avez installé Compose en utilisant un fichier binaire, il suffit de le supprimer du chemin /usr/local/bin/.

sudo rm /usr/local/bin/docker-compose

Si vous avez installé Compose en utilisant PiP, exécutez la commande suivante pour supprimer Docker Compose :

pip uninstall docker-compose

7. Migrer vers Docker sans root

Le mode sans racine vous permet d'exécuter Docker sans privilèges root pour une sécurité accrue.

Quelques avantages importants du mode Docker sans racine sont :

  • dockerd s'exécute en tant qu'utilisateur normal.
  • Même si un conteneur s'échappe, il n'a qu'un accès au niveau utilisateur sur l'hôte.
  • Fournit une isolation plus forte, notamment dans les environnements partagés ou non fiables.

Docker sans racine mérite d'être envisagé si :

  • Vous êtes dans un environnement multi-utilisateur.
  • Vous utilisez des images non fiables.
  • Vous voulez une défense en profondeur plus forte.
  • Vous devez respecter des politiques strictes de conformité/sécurité.

Veuillez noter que Docker sans privilèges n'est pas une solution miracle, mais il rend les échappées de conteneurs moins catastrophiques.

Si vous voulez une isolation maximale et la tranquillité d'esprit, surtout lorsque vous expérimentez avec des images tierces, passez à Docker rootless comme expliqué dans le guide ci-dessous.

  • Passer à Docker sans privilèges sur Debian et Ubuntu Linux

8. Conclusion

Dans ce guide, nous avons discuté de ce qu'est Docker et comment installer Docker sur Ubuntu 22.04 LTS Jammy Jellyfish. Ensuite, nous avons appris comment tester l'installation de Docker en exécutant une image Docker hello-world. Enfin, nous avons conclu le tutoriel en installant Docker Compose de deux manières différentes et en expliquant comment supprimer Docker Engine et Compose lorsqu'ils ne sont plus nécessaires.

Pour installer Docker sur des systèmes basés sur RPM tels que RHEL, Fedora, CentOS, AlmaLinux, Rocky Linux et openSUSE, consultez le lien suivant.

Installer Docker Engine et Docker Compose sur AlmaLinux, CentOS, Rocky Linux

Ressource :

  • Site web Docker

Lecture connexe :

  • Configurer Docker et Docker Compose avec DockSTARTer