Agence web » Actualités du digital » Comment installer Docker et Docker Compose sur Linux –

Comment installer Docker et Docker Compose sur Linux –

Docker vous offre tout ce dont vous avez besoin pour créer et exécuter des conteneurs sur votre système Linux. Les conteneurs sont similaires aux machines virtuelles légères. Ils vous permettent de créer des images d’applications portables qui s’exécutent à l’aide du noyau du système d’exploitation de votre hôte.

Vous pouvez utiliser Docker sur les plates-formes Debian, Fedora, CentOS et Raspbian. Les dérivés de ces distributions fonctionneront également. Docker fournit des versions x86 / x64 et ARM pour la plupart des plates-formes prises en charge. Nous utilisons un système Debian avec le apt gestionnaire de paquets pour ce guide. Des instructions spécifiques à d’autres distributions peuvent être trouvées dans la documentation Docker.

Docker Compose vous permet de créer et d’exécuter des piles de plusieurs conteneurs. Vous créez un fichier YAML qui configure les conteneurs de votre application. Vous pouvez ensuite utiliser une seule commande pour démarrer tous les conteneurs et les lier entre eux. Compose vous aide à séparer les composants de votre pile en services conteneurisés individuels.

Compose est distribué indépendamment de Docker. Installez Docker avant d’ajouter Compose – sinon, Compose ne pourra pas fonctionner.

Installer Docker

Vous pouvez utiliser le gestionnaire de packages de votre système d’exploitation pour installer la dernière version de Docker. Vous devrez ajouter le référentiel de Docker, mettre à jour vos listes de packages, puis installer Docker.

Debian / Ubuntu

Commencez par ajouter les dépendances nécessaires au processus d’installation:

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

Ensuite, ajoutez la clé GPG du référentiel de Docker:

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

Ajoutez le référentiel à vos sources et mettez à jour vos listes de packages:

echo "deb [arch=amd64 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
sudo apt-get update

Vous pouvez maintenant installer Docker:

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

Feutre

Ajouter le référentiel de packages de Docker:

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

Installez Docker:

sudo dnf install docker-ce docker-ce-cli containerd.io

CentOS

Ajouter le référentiel de packages de Docker:

sudo yum -y install yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

Installez Docker:

sudo yum install docker-ce docker-ce-cli containerd.io

Utilisation de Docker sans Sudo

Le démon Docker s’exécute comme root. Vous devez généralement préfixer les commandes Docker avec sudo. Cela peut devenir fastidieux si vous utilisez souvent Docker. Vous ajouter à la docker group vous permettra d’utiliser Docker sans sudo.

sudo usermod -aG docker $USER

Une fois que vous êtes dans le groupe, déconnectez-vous et reconnectez-vous. Sinon, exécutez le newgrp docker commande pour vous connecter immédiatement au groupe mis à jour. Vous devriez maintenant pouvoir abandonner sudo à partir des commandes Docker.

Test de votre installation Docker

Maintenant que Docker est installé, il est temps de tester son fonctionnement! Vous pouvez utiliser le minimum hello-world image.

docker run hello-world:latest

Vous devriez voir apparaître quelques lignes de sortie dans votre terminal. Docker recherchera d’abord le hello-world:latest image sur votre machine. Comme elle n’existera pas, l’image sera ensuite extraite du référentiel Docker Hub.

Une fois l’image extraite, un nouveau conteneur sera créé à partir de celle-ci. Le conteneur est configuré pour émettre un message de base «bonjour le monde», puis quitter. Si vous voyez le texte, votre installation Docker fonctionne!

Gérer le service Docker

Vous pouvez vérifier si Docker fonctionne en inspectant son service avec systemctl. Il y a deux éléments à considérer, docker et containerd. docker est le démon Docker Engine auquel la CLI envoie des commandes. containerd est le runtime sous-jacent qui exécute réellement vos conteneurs.

sudo systemctl status docker.service
sudo systemctl status containerd.service

Vous pouvez gérer les démons comme tous les autres services de votre système. Utiliser systemctl stop si vous souhaitez arrêter temporairement Docker et libérer les ressources système utilisées par vos conteneurs:

sudo systemctl stop docker.service

Vous pouvez redémarrer le service avec systemctl start.

Ajout de Docker-Compose

docker-compose est un binaire distinct qu’il est préférable de télécharger directement à partir des versions GitHub du projet. Les distributions Linux les plus populaires incluent Compose dans leurs gestionnaires de paquets, mais il peut être considérablement obsolète.

Rendez-vous sur la page des versions de Docker Compose et notez le dernier numéro de version. Au moment de la rédaction de cet article, c’était 1.29.0.

Remplacez la version que vous voyez au lieu de 1.29.0 dans la commande ci-dessous. Cela téléchargera le bon binaire pour votre système et le déposera dans /usr/local/bin.

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

Ensuite, rendez le fichier exécutable:

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

Vous pourrez désormais utiliser le docker-compose commande dans votre terminal. Essayez de courir docker-compose --version vérifier.

Création d’un fichier Docker-Compose simple

Utiliser docker-compose vous devez créer un docker-compose.yml déposer. Cela décrit les conteneurs qui composent la pile de votre application. Vous pouvez spécifier des liaisons de port, des variables d’environnement, des réseaux et des volumes qui sont utilisés par vos conteneurs.

Conteneurs déclarés dans le même docker-compose.yml Le fichier fait automatiquement partie de la même pile. Ils sont reliés entre eux dans un réseau Docker, afin qu’ils puissent communiquer entre eux en utilisant leur docker-compose.yml noms de service en tant que noms d’hôte.

Voici un simple docker-compose.yml pour exécuter un serveur Web PHP et une base de données MySQL:

version: "3"

services:
  app:
    image: php8.0-apache
    environment:
      - MYSQL_SERVER=mysql
      - MYSQL_USERNAME=root
      - MYSQL_PASSWORD=example
    ports:
      - ${PORT:-80}:80
    restart: unless-stopped
  mysql:
    image: mysql:8.0
    expose:
      - 3306
    environment:
      - MYSQL_ROOT_PASSWORD
    volumes:
      - mysql:/var/lib/mysql
    restart: unless-stopped

volumes:
  mysql:

Vous pouvez lancer les deux services en exécutant docker-compose up -d. Vous verrez les deux images extraites de Docker Hub. Les conteneurs seront alors démarrés. Vous pouvez les arrêter tous les deux en utilisant docker-compose stop. Utiliser docker-compose down pour retirer les conteneurs.

L’exemple de fichier YAML présente quelques fonctionnalités de Docker Compose. Les conteneurs sont définis sous le services nœud, avec chaque conteneur déclarant son Docker image. Vous pouvez passer des variables d’environnement shell dans des conteneurs (environments) et configurez les liaisons de port Docker (ports). Les variables d’environnement peuvent être interpolées en chaînes à l’aide du ${VARIABLE:-DEFAULT} syntaxe. Si la variable n’est pas définie dans votre shell, DEFAULT sera utilisé comme valeur à la place. Vous pouvez en savoir plus sur Docker Compose dans notre guide dédié.

Résumé

Vous pouvez facilement installer Docker à l’aide des gestionnaires de packages des distributions Linux populaires. Ajoutez le référentiel Docker, puis installez docker-ce, docker-ce-cli et containerd.io. Ces composants vous offrent tout ce dont vous avez besoin pour créer et exécuter vos conteneurs.

Une fois que vous êtes opérationnel, vous pouvez rédiger un Dockerfile et utilise docker build -t my-app:latest . pour le construire. Ensuite, utilisez docker run my-app:latest pour démarrer votre conteneur.

Docker-Compose est une couche d’abstraction supplémentaire qui facilite l’exécution d’une «pile» de plusieurs conteneurs. Avec Compose, vous n’avez pas besoin d’exécuter manuellement plusieurs commandes en série. Vous pouvez écrire un fichier YAML déclaratif et utiliser docker-compose up pour démarrer tous vos conteneurs à l’unisson.

★★★★★