Docker est un outil populaire pour développer et déployer des logiciels dans des paquets appelés conteneurs. Ubuntu est l’une des distributions Linux les plus populaires et est un système d’exploitation bien supporté par Docker.

L’installation de Docker sur Ubuntu crée une plateforme idéale pour vos projets de développement, en utilisant des machines virtuelles légères qui partagent le noyau du système d’exploitation d’Ubuntu. Ce tutoriel vous aidera à démarrer en vous expliquant 4 façons d’y parvenir.

En savoir plus sur Docker

Docker contribue à rendre les applications portables en vous permettant de les construire et de les exécuter sur n’importe quel hôte Docker. Une image de conteneur peut être utilisée sans modification partout où Docker est disponible – de votre ordinateur portable au cloud. Cela simplifie l’expérience du développeur en éliminant les différences entre les environnements d’exécution. Le format conteneur est également facile à distribuer sur plusieurs machines physiques, ce qui vous permet de faire évoluer facilement les applications en fonction de l’évolution de la demande.

Docker inclut tout ce dont vous avez besoin pour créer et exécuter des images de conteneurs, qu’elles proviennent de Docker Hub et d’autres registres publics, ou de vos propres Dockerfiles.

Préparation de l’installation de Docker sur Ubuntu

Vous pouvez installer la dernière version de Docker sur les versions Ubuntu 18.04, 20.04, 21.10 et 22.04. Les architectures x64_64/AMD64, ARMhf, ARM64 et S390x sont prises en charge.

Il existe plusieurs façons d’installer Docker, et votre choix dépendra de la fonctionnalité dont vous avez besoin et de votre approche préférée de la gestion des paquets. Vous découvrirez toutes les options possibles dans ce guide.

Sélection d’une version de Docker

Traditionnellement, Docker sous Linux n’utilisait que le terminal. Une installation fonctionnelle comprend Docker Engine, un démon qui exécute vos conteneurs, et l’interface de ligne de commande (CLI) docker pour interagir avec le démon.

Docker Desktop est une autre façon d’utiliser Docker. Historiquement disponible uniquement sur Windows et Mac, il a été lancé pour Linux en mai 2022. Docker Desktop sur Ubuntu nécessite un processeur AMD64 et soit Ubuntu 21.10 ou 22.04. Il fournit une interface graphique pour gérer vos conteneurs, un cluster Kubernetes intégré et la prise en charge d’extensions tierces. Docker Desktop vous offre également les CLI docker et Docker Compose.

Docker Desktop est différent de Docker Engine dans la mesure où il utilise une machine virtuelle pour exécuter vos conteneurs (c’est pourquoi Docker Desktop est requis pour les utilisateurs de Windows et MacOS). Bien qu’il soit possible d’utiliser les deux côte à côte sur Ubuntu, vous pourriez trouver des conflits entre les versions de docker CLI. Il est préférable d’en choisir une et de s’y tenir. Choisissez Docker Engine si vous êtes à l’aise dans votre terminal et si vous souhaitez bénéficier du meilleur support et des meilleures performances. La VM de Docker Desktop le rend légèrement plus lourd, mais c’est le meilleur choix si vous voulez une interface utilisateur intégrée ou si vous prévoyez d’utiliser Kubernetes.

Installation de Docker Engine sur Ubuntu

Docker Engine est le moyen standard d’exécuter Docker sur Ubuntu. Il fonctionne avec toutes les versions et tous les environnements pris en charge, d’une machine Ubuntu Desktop locale à votre hôte cloud Ubuntu Server. Assurez-vous que vous utilisez une version Ubuntu 18.04 ou plus récente avant de continuer.

Docker Engine dispose de 3 méthodes d’installation différentes :

  1. Un dépôt officiel d’Ubuntu apt
  2. Un paquet Debian autonome (.deb)
  3. Un script d’installation automatique

L’option 1, le dépôt Ubuntu apt, est la plus couramment utilisée. Elle ajoute Docker à votre liste de paquets afin que vous puissiez facilement installer les futures mises à jour en exécutant apt upgrade. L’option 2 ne prend pas en charge les mises à jour automatisées, mais elle est idéale pour installer Docker sur des systèmes hors ligne. Le script d’installation automatique est la méthode la plus simple pour commencer, mais il est configuré pour une utilisation en développement uniquement. Docker déconseille de l’utiliser dans des environnements de production.

Utilisez le dépôt apt lorsque vous travaillez avec un système de production, que vous souhaitez des mises à jour faciles ou que vous devez utiliser le même mécanisme dans tous les environnements.

Utilisez le script d’installation automatique si vous souhaitez une configuration rapide tout en expérimentant Docker sur votre propre machine.

1. Installation de Docker à l’aide du dépôt apt

Docker publie des paquets sur son propre dépôt apt. Vous devrez ajouter ce dépôt à votre liste de sources apt, sinon, votre installation apt ne pourra pas trouver les paquets Docker.

Commencez par mettre à jour votre liste de paquets existante et installez certaines dépendances pour les étapes suivantes. Les outils ca-certificates, curl, gnupg, et lsb_release seront utilisés pour télécharger les détails du dépôt Docker apt et la clé de signature pour votre système. Bien que vous ayez probablement déjà ces paquets, cela ne fait pas de mal de s’assurer qu’ils sont disponibles.

$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release

Ensuite, enregistrez le trousseau de clés GPG de Docker avec apt. Cela permettra à apt de valider les paquets Docker que vous installez.

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg

La commande curl télécharge la clé GPG de Docker pour Ubuntu, la reconvertit en encodage OpenGPG standard et l’enregistre dans le répertoire keyring d’apt. chmod est utilisée pour définir les autorisations sur le fichier keyring afin que apt le détecte de manière fiable.

Vous pouvez maintenant ajouter la source du paquet Docker à votre système. Exécutez la commande suivante :

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

Celle-ci utilise la substitution du shell pour détecter automatiquement l’architecture de votre système, comme AMD64 ou ARM64, et télécharger la liste de paquets appropriée. Elle sera vérifiée à l’aide de la clé PGP ajoutée précédemment. Le référentiel est ajouté en tant que nouvelle liste de paquets à l’intérieur du fichier apt /etc/apt/sources.list.d directory.

Mettez à nouveau à jour vos listes de paquets pour que apt sache que les paquets Docker existent :

$ sudo apt update

Vous pouvez maintenant utiliser la commande apt install pour ajouter les composants de Docker à votre système. Vous allez installer la dernière version de Docker Community Edition (CE). Il y a trois paquets à installer :

  • docker-ce: le démon Docker Engine.
  • docker-ce-cli: le CLI de Docker avec lequel vous interagirez.
  • containerd.io: le moteur d’exécution de conteneur connu sous le nom de containerd qui démarre et exécute vos conteneurs.
$ sudo apt install docker-ce docker-ce-cli containerd.io

2. Installation de Docker à l’aide du paquet Debian

Le paquet officiel .deb est simple à mettre en place mais vous devrez télécharger et installer manuellement chaque nouvelle version. Les paquets sont hébergés sur un simple serveur de fichiers. Naviguez d’abord sur la page des notes de version de Docker pour trouver le dernier numéro de version disponible, tel que 20.10.20. Ensuite, rendez-vous sur la page GitHub de containerd pour vérifier également son numéro de version. Il ressemblera à 1.6.8.

Vous pouvez maintenant exécuter la séquence de commandes suivante pour télécharger le bon ensemble de paquets pour votre plateforme. Remplacez <DOCKER_VERSION> et <CONTAINERD_VERSION> par les numéros de version actuels de Docker et de containerd respectivement.

$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce.deb
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce-cli_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce-cli.deb
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/containerd.io_<CONTAINERD_VERISON>-1_amd64.deb -o containerd.deb

Vous pouvez également télécharger les fichiers et inspecter toutes les versions disponibles en visitant la liste des répertoires pour votre version Ubuntu dans votre navigateur.

Une fois que vous avez téléchargé les paquets Docker CE, CLI et containerd, utilisez la commande suivante pour les installer :

$ sudo apt install ./docker-ce.deb ./docker-ce-cli.deb ./containerd.deb

Ajustez les noms de fichiers si vous avez téléchargé manuellement les paquets sans utiliser le script fourni ci-dessus.

3. Installation de Docker à l’aide du script d’installation

Le script de commodité de Docker automatise l’installation de tous les composants de Docker. Il n’est pas interactif, vous pouvez donc vous asseoir et attendre pendant que votre système est préparé pour vous.

Téléchargez d’abord le script :

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

Exécutez maintenant le script avec les privilèges de root :

$ sudo sh get-docker.sh
Executing docker install script
...

Attendez que le script soit terminé. Vous devriez voir un message de confirmation indiquant que Docker est installé.

Le script est conçu pour être une solution unique. Vous ne pouvez pas personnaliser ce qu’il fait sans modifier directement la source du script. Il n’est pas non plus conçu pour effectuer les mises à jour de Docker, car il ne mettra pas les dépendances à jour dans leurs dernières versions.

S’assurer que le moteur Docker fonctionne sur Ubuntu

Quelle que soit la méthode d’installation que vous avez utilisée, vous devez vous assurer que tout fonctionne en démarrant un conteneur :

$ sudo docker run hello-world

Vous verrez le client Docker tirer le site hello-world:image vers votre machine, à partir du dépôt Docker Hub :

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625
Status: Downloaded newer image for hello-world:latest

Un nouveau conteneur démarrera alors automatiquement. L’image de démarrage « hello-world » est configurée pour exécuter une commande simple qui fournit quelques informations de base sur Docker, puis se termine immédiatement :

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.

Le fait de voir la sortie indiquée ci-dessus signifie que Docker est prêt à être utilisé. Le démon a réussi à extraire l’image hello-world:latest de Docker Hub, et a démarré un conteneur en l’utilisant. Tout à partir de la ligne « Hello from Docker » a été émis par le processus à l’intérieur du conteneur.

Configuration des permissions du moteur Docker sur Ubuntu

Une installation fraîche de Docker Engine nécessite généralement des privilèges root pour exécuter les commandes CLI de docker. Vous devez préfixer chaque commande avec sudo, ce qui est peu pratique.

Vous pouvez éviter cette exigence en vous ajoutant au groupe docker après avoir installé Docker Engine en suivant les étapes ci-dessus. Cette modification facultative vous donne les autorisations nécessaires pour exécuter les commandes docker en tant qu’utilisateur normal, sans sudo, ce qui simplifie votre expérience de l’interface CLI.

Assurez-vous que le groupe d’utilisateurs docker existe :

$ sudo groupadd docker

Puis ajoutez-vous à celui-ci :

$ sudo usermod -aG docker $USER

Si vous avez précédemment exécuté une commande docker avec sudo, vous devrez fixer les permissions sur votre répertoire ~/.docker:

$ sudo chown $USER:$USER /home/$USER/.docker -R
$ sudo chmod g+rwx $HOME/.docker -R

Cela garantit que votre propre compte d’utilisateur est autorisé à lire et à écrire les fichiers dans le répertoire.

Déconnectez-vous de votre système et reconnectez-vous afin que votre nouvelle appartenance à un groupe prenne effet. Essayez d’exécuter une commande docker sans sudo:

$ docker run hello-world

Cette étape de post-installation termine le processus de configuration de Docker sur Ubuntu. Le démon est déjà configuré pour démarrer automatiquement, vous n’avez donc pas besoin de configurer manuellement un service. Si vous prévoyez une installation avancée, consultez le manuel de l’utilisateur de Docker pour obtenir des instructions sur la façon de configurer la mise en réseau personnalisée, la journalisation et la gestion du stockage en volume.

Ajout de Docker Compose à votre installation Ubuntu

Docker Compose est un outil compagnon populaire de Docker qui facilite le travail avec les applications qui utilisent plusieurs conteneurs. Alors que la CLI de docker ne cible qu’un seul conteneur avec chaque commande, docker compose peut démarrer et arrêter plusieurs conteneurs avec chaque action. Cela simplifie la gestion des systèmes où vous avez des services distincts pour le frontend, le backend et la base de données.

Docker Compose est désormais disponible en tant que partie intégrante de la CLI docker. L’extension Compose V2 est incluse lorsque vous utilisez le script d’installation officiel pour installer Docker. Elle est également disponible dans apt si vous avez utilisé cette méthode :

$ sudo apt install docker-compose-plugin

Sinon, vous pouvez télécharger la dernière archive de .deb et l’installer manuellement :

$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb -o docker-compose-plugin.deb
$ sudo apt install -i ./docker-compose-plugin.deb

Vérifiez que Compose fonctionne en essayant la commande docker compose version:

$ docker compose version
Docker Compose version v2.6.0

Installation de Docker Desktop sur Ubuntu

Alors que Docker Engine est limité à une expérience CLI, Docker Desktop fournit une interface de gestion graphique, un support Kubernetes intégré et des extensions tierces optionnelles qui peuvent aider à simplifier vos flux de travail de conteneurs. Il s’agit d’un excellent choix lorsque vous recherchez la facilité d’utilisation sur votre propre poste de travail.

Pour installer Docker Desktop, commencez par installer certaines dépendances à l’aide de apt:

$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release

Ensuite, exécutez la série de commandes suivante pour ajouter le dépôt apt de Docker. Bien que Docker Desktop ne soit pas inclus dans le dépôt, les paquets qu’il contient sont référencés comme dépendances par l’archive Debian de Desktop.

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update

La commande curl télécharge la clé GPG de Docker pour Ubuntu, la reconvertit en encodage OpenGPG standard et l’enregistre dans le répertoire keyring apt. chmod est utilisé pour définir les autorisations sur le fichier keyring afin que apt le détecte de manière fiable.

Téléchargez l’archive Debian de Docker Desktop à partir du lien figurant dans la documentation. Cela fournira la dernière version stable de Docker Desktop pour Linux. Utilisez apt pour installer le paquet, en substituant le numéro de version que vous avez téléchargé :

$ sudo apt install ./docker-desktop-4.11.0-amd64.deb

Docker Desktop apparaîtra maintenant dans votre lanceur d’applications. Utilisez votre lanceur pour démarrer Docker Desktop et ouvrir l’interface utilisateur. Vous pourrez également exécuter les commandes docker, docker compose, et kubectl dans votre terminal. L’application ajoute également un menu à votre plateau shell qui affiche le statut actuel de Docker Desktop et vous permet d’effectuer quelques actions rapides.

Vous serez invité à accepter un contrat de service la première fois que vous exécuterez Docker Desktop. Appuyez sur le bouton Accepter si vous êtes d’accord, et attendez pendant que Docker Desktop démarre sa machine virtuelle.

Après quelques instants, le tableau de bord se chargera. Il propose des raccourcis pour créer de nouveaux conteneurs à partir d’images populaires, évitant ainsi les longues commandes de terminal.

Docker Desktop installé sur Ubuntu.
Docker Desktop installé sur Ubuntu.

DevKinsta : Docker Desktop pour WordPress

Les solutions spécialisées construites sur les fondations de Docker offrent une expérience encore plus facile pour des technologies spécifiques. DevKinsta est un outil de développement local gratuit pour la création de thèmes et de extensions WordPress qui utilise Docker pour isoler et sécuriser entièrement vos sites WordPress. Il permet de démarrer et de personnaliser rapidement et simplement un nouveau projet WordPress sans avoir à configurer vous-même des serveurs. Une fois que vous êtes prêt, vous pouvez pousser directement vers la plateforme Kinsta pour déployer votre site en direct.

Vous pouvez installer DevKinsta sur MacOS, Windows et Ubuntu.

Résumé

C’est avec Docker que la plupart des développeurs commencent à utiliser les conteneurs. Vous pouvez facilement installer Docker sur votre système Ubuntu, soit comme Docker Engine, soit comme le nouveau Docker Desktop. Une fois Docker installé, vous serez parfaitement équipé pour construire et exécuter des conteneurs, ce qui vous permettra de simplifier le développement et de réduire les divergences entre les environnements.

Si vous développez des thèmes et des extensions WordPress, DevKinsta peut simplifier la création d’un environnement de développement local et le déploiement de votre site.

James Walker

James Walker is the founder of Heron Web, a UK-based software development studio providing bespoke solutions for SMEs. He's experienced in delivering custom software using engineering workflows built around modern DevOps methodologies. James is also a freelance technical writer and has written extensively about the software development lifecycle, current industry trends, and DevOps concepts and technologies.