GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment installer Docker et Docker Compose sous 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'application portables qui s'exécutent à l'aide du noyau du système d'exploitation de votre hôte.

Vous pouvez utiliser Docker sur les plateformes 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.

CONNEXE : Comment utiliser Docker pour conteneuriser PHP et Apache

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

Fédora

Ajoutez 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

Installer Docker :

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

CentOS

Ajoutez 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

Installer Docker :

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

Utiliser Docker sans Sudo

Le démon Docker s'exécute en tant que root . Vous devez généralement préfixer les commandes Docker avec sudo . Cela peut devenir fastidieux si vous utilisez souvent Docker. S'ajouter au docker group vous permettra d'utiliser Docker sans sudo .

sudo usermod -aG docker $USER

Une fois dans le groupe, déconnectez-vous et reconnectez-vous. Vous pouvez également exécuter le newgrp docker commande pour se connecter immédiatement au groupe mis à jour. Vous devriez maintenant pouvoir déposer sudo à partir des commandes Docker.

Test de votre installation Docker

Maintenant que Docker est installé, il est temps de tester qu'il fonctionne ! Vous pouvez utiliser le minimum hello-world photo.

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 "hello world" puis se fermer. Si vous voyez le texte, votre installation Docker fonctionne !

Gérer le service Docker

Vous pouvez vérifier si Docker est en cours d'exécution en inspectant son service avec systemctl . Il y a deux composants à 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 n'importe quel autre service sur votre système. Utilisez systemctl stop si vous souhaitez arrêter temporairement Docker et libérer des 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 séparé 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 packages, 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, 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

Rendez ensuite le fichier exécutable :

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

Vous pourrez maintenant utiliser le docker-compose commande dans votre terminal. Essayez d'exécuter docker-compose --version à vérifier.

Création d'un fichier Docker-Compose simple

Pour utiliser docker-compose vous devez créer un docker-compose.yml dossier. Ceci décrit les conteneurs qui composent la pile de votre application. Vous pouvez spécifier les liaisons de port, les variables d'environnement, les réseaux et les 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 être extraites de Docker Hub. Les conteneurs seront alors démarrés. Vous pouvez les arrêter tous les deux en utilisant docker-compose stop . Utilisez 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 les services nœud, 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 en utilisant le ${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 écrire un Dockerfile et utilisez 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.

CONNEXE : Qu'est-ce que Docker Compose et comment l'utiliser ?


Docker
  1. Comment installer Docker sur le système Fedora Linux

  2. Comment installer et utiliser Docker sur Ubuntu 18.04

  3. Comment installer et utiliser Docker Compose sur Ubuntu 18.04

  4. Comment installer et utiliser Docker sur CentOS 7

  5. Comment installer et utiliser Docker Compose sur CentOS

Comment installer Docker sur Linux Mint 20

Comment installer et utiliser Docker Compose sur Ubuntu 20.04

Comment installer et utiliser Docker Compose sur Ubuntu 22.04

Comment installer Docker Compose sur Ubuntu

Comment installer Docker sur Rocky Linux et AlmaLinux

Comment installer et utiliser Docker sur Ubuntu 20.04