🖥️
Besoin d'un VPS ? Commandez un VPS →

Installer Docker & Docker Compose

Ce guide vous explique comment installer Docker et Docker Compose sur votre VPS Linux afin de pouvoir déployer et gérer des applications conteneurisées.


Qu'est-ce que Docker ?

Docker est une plateforme permettant d'exécuter des applications dans des conteneurs isolés.

Un conteneur regroupe une application ainsi que les éléments nécessaires à son fonctionnement, ce qui permet de faciliter son déploiement et sa gestion sur un serveur.

Docker Compose permet quant à lui de gérer plusieurs conteneurs à partir d'un seul fichier de configuration.


Installation de Docker

Sur Ubuntu / Debian

Avant de commencer, mettez à jour la liste des paquets :

sudo apt update

Installez ensuite les dépendances nécessaires :

sudo apt install -y ca-certificates curl gnupg lsb-release

Créez le répertoire destiné à stocker la clé du dépôt Docker :

sudo install -m 0755 -d /etc/apt/keyrings

Ajoutez la clé GPG officielle de Docker :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Autorisez la lecture de la clé :

sudo chmod a+r /etc/apt/keyrings/docker.gpg

Ajoutez le dépôt officiel Docker :

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

Mettez à nouveau à jour la liste des paquets :

sudo apt update

Installez Docker ainsi que les composants associés :

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

Vérifier l'installation

Une fois l'installation terminée, vérifiez la version de Docker :

sudo docker --version

Vérifiez également la version de Docker Compose :

sudo docker compose version

Si les deux commandes retournent une version, Docker et Docker Compose sont correctement installés.


Utiliser Docker sans sudo

Par défaut, Docker nécessite les privilèges administrateur.

Vous pouvez ajouter votre utilisateur au groupe docker afin d'exécuter les commandes Docker sans utiliser sudo :

sudo usermod -aG docker $USER

Déconnectez-vous ensuite de votre session SSH puis reconnectez-vous afin que la modification soit prise en compte.

Vous pourrez alors utiliser directement les commandes Docker avec votre utilisateur.

💡CONSEIL

Le changement de groupe nécessite une nouvelle connexion à votre session SSH. Si Docker retourne encore une erreur de permission après reconnexion, vérifiez que votre utilisateur appartient bien au groupe docker.


Commandes Docker essentielles

Gestion des conteneurs

Pour afficher les conteneurs actuellement actifs :

docker ps

Pour afficher tous les conteneurs, y compris ceux qui sont arrêtés :

docker ps -a

Pour démarrer un conteneur :

docker start nom_conteneur

Pour arrêter un conteneur :

docker stop nom_conteneur

Pour supprimer un conteneur :

docker rm nom_conteneur

Pour afficher les logs d'un conteneur :

docker logs nom_conteneur

Pour afficher les logs en temps réel :

docker logs -f nom_conteneur

Gestion des images

Pour afficher les images Docker présentes sur le serveur :

docker images

Pour télécharger une image depuis le registre Docker :

docker pull nginx

Pour supprimer une image :

docker rmi nginx

Docker Compose

Docker Compose permet de gérer plusieurs conteneurs à partir d'un fichier YAML.

Cette méthode est particulièrement pratique lorsqu'une application nécessite plusieurs services, par exemple un serveur web associé à une base de données.

Exemple : serveur web avec base de données

Créez un fichier nommé docker-compose.yml.

Ajoutez ensuite la configuration suivante :

version: '3.8'

services:
      web:
        image: nginx:latest
        ports:
          - "80:80"
        volumes:
          - ./html:/usr/share/nginx/html
        restart: unless-stopped

      db:
        image: mariadb:latest
        environment:
          MYSQL_ROOT_PASSWORD: votre_mot_de_passe
          MYSQL_DATABASE: ma_base
        volumes:
          - db_data:/var/lib/mysql
        restart: unless-stopped

    volumes:
      db_data:
💡À SAVOIR

Docker Compose permet de regrouper plusieurs services dans un même fichier. Une modification du fichier de configuration peut donc impacter plusieurs conteneurs simultanément.


Commandes Docker Compose

Pour démarrer les services en arrière-plan :

docker compose up -d

Pour arrêter les services :

docker compose down

Pour afficher les logs des services :

docker compose logs -f

Pour reconstruire les images :

docker compose build

Pour redémarrer un service spécifique :

docker compose restart web

Exemples pratiques

Déployer Portainer

Portainer fournit une interface web permettant de gérer plus facilement vos conteneurs Docker.

Créez d'abord le volume utilisé par Portainer :

docker volume create portainer_data

Lancez ensuite le conteneur Portainer :

    docker run -d \
      -p 9000:9000 \
      --name portainer \
      --restart=unless-stopped \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v portainer_data:/data \
      portainer/portainer-ce

Une fois Portainer démarré, vous pouvez accéder à son interface depuis votre navigateur :

http://VOTRE_IP:9000

Remplacez VOTRE_IP par l'adresse IP publique de votre VPS.


Déployer un serveur Minecraft

Docker Compose peut également être utilisé pour déployer un serveur Minecraft.

Créez un fichier docker-compose.yml :

version: '3.8'

    services:
      minecraft:
        image: itzg/minecraft-server
        ports:
          - "25565:25565"
        environment:
          EULA: "TRUE"
          TYPE: "PAPER"
          MEMORY: "2G"
        volumes:
          - ./minecraft-data:/data
        restart: unless-stopped

Le serveur Minecraft utilisera ici le port 25565 et disposera de 2 Go de mémoire.

⚠️ATTENTION

Avant de supprimer des ressources Docker, assurez-vous qu'elles ne sont plus utilisées par vos conteneurs ou applications. Certaines suppressions peuvent entraîner une interruption de service.


Nettoyage de Docker

Au fil du temps, Docker peut conserver des conteneurs, images ou volumes qui ne sont plus utilisés.

Supprimer les conteneurs arrêtés

docker container prune

Supprimer les images inutilisées

docker image prune

Supprimer les volumes inutilisés

docker volume prune

Nettoyer les ressources inutilisées

La commande suivante permet de supprimer un grand nombre de ressources Docker inutilisées :

docker system prune -a

Supprimer également les volumes avec Docker Compose

La commande suivante permet d'arrêter les services et de supprimer également les volumes associés :

docker compose down -v

Cette commande peut être utile lorsque vous souhaitez repartir d'une installation propre.

⚙️TECHNIQUE

Les volumes Docker peuvent contenir les données persistantes de vos applications. Leur suppression peut entraîner une perte définitive des données si aucune sauvegarde n'est disponible.


Points d'attention

Docker peut utiliser une quantité importante d'espace disque lorsque de nombreuses images ou données de conteneurs sont conservées.

Avant de supprimer des ressources, vérifiez qu'elles ne sont plus utilisées par vos applications.

La commande docker system prune -a doit notamment être utilisée avec précaution, car elle peut supprimer des images qui pourraient être nécessaires au fonctionnement de vos conteneurs.


BESOIN D'AIDE

Si vous rencontrez un problème lors de l'installation ou de l'utilisation de Docker sur votre VPS Hostinity, vous pouvez contacter notre équipe d'assistance depuis votre espace client Hostinity.

Cet article vous a-t-il été utile ?