Docker & Portainer — installation et gestion des conteneurs

Partager
Docker & Portainer — installation et gestion des conteneurs

Introduction

Docker permet de déployer des applications dans des conteneurs isolés, reproductibles et faciles à gérer. Portainer ajoute une interface web pour administrer ces conteneurs sans passer uniquement par la ligne de commande. Cet article documente l'installation de Docker Engine et de Portainer sur un VPS Ubuntu, ainsi que les bonnes pratiques de gestion au quotidien.


1. Installation de Docker Engine

Prérequis

apt update && apt upgrade -y
apt install ca-certificates curl gnupg -y

Ajout du dépôt officiel Docker

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
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 $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

Installation

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

Vérification

docker version
docker run hello-world

2. Concepts essentiels

Images vs conteneurs

  • Image : modèle immuable (ex. nginx:latest, ghost:alpine)
  • Conteneur : instance en cours d'exécution d'une image
  • Volume : stockage persistant monté dans un conteneur
  • Réseau : canal de communication entre conteneurs

Commandes de base

docker ps                          # conteneurs actifs
docker ps -a                       # tous les conteneurs
docker images                      # images locales
docker logs <nom_conteneur>        # logs d'un conteneur
docker exec -it <nom> bash         # shell dans un conteneur
docker stop <nom> && docker rm <nom>  # arrêter et supprimer

3. docker-compose

Tous les services sont définis dans des fichiers docker-compose.yml pour garantir la reproductibilité.

Exemple de structure

services:
  app:
    image: ghost:alpine
    container_name: ghost
    restart: unless-stopped
    environment:
      - NODE_ENV=production
    volumes:
      - ./data:/var/lib/ghost/content
    networks:
      - web

networks:
  web:
    external: true

Commandes compose

docker compose up -d       # démarrer en arrière-plan
docker compose down        # arrêter et supprimer les conteneurs
docker compose pull        # mettre à jour les images
docker compose logs -f     # suivre les logs

4. Portainer

Portainer s'installe lui-même comme un conteneur Docker.

Création du volume et démarrage

docker volume create portainer_data

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

L'interface est ensuite accessible sur https://<DOMAINE>:9443 ou via un reverse proxy (voir article dédié Nginx).

Fonctionnalités utiles

  • Vue d'ensemble de tous les conteneurs, images, volumes
  • Démarrage / arrêt / redémarrage en un clic
  • Consultation des logs en temps réel
  • Déploiement de stacks via l'interface (équivalent docker-compose)
  • Gestion des réseaux et volumes

Référence rapide

Action Commande
Lister conteneurs actifs docker ps
Logs d'un conteneur docker logs -f <nom>
Shell dans un conteneur docker exec -it <nom> bash
Redémarrer un conteneur docker restart <nom>
Nettoyer les ressources inutilisées docker system prune -a
Démarrer une stack docker compose up -d

Conclusion

Docker et Portainer forment un duo complémentaire : Docker gère l'exécution des conteneurs en ligne de commande, Portainer apporte la visibilité et le contrôle via une interface web. L'étape suivante est la mise en place d'un reverse proxy Nginx pour exposer les services de manière sécurisée (voir article dédié).