Portainer est un outil de gestion puissant et facile à utiliser pour Docker. Dans ce tutoriel, je me propose de vous guider à travers l’installation de Portainer en utilisant Docker Compose, en couvrant à la fois une installation standard et une configuration plus sécurisée avec des certificats auto-signés.

Prerequisites Link to heading

  • Docker et Docker Compose installés sur votre système.
  • OpenSSL installé pour générer des certificats auto-signés (optionnel).

Partie 1 : Installation de Portainer Link to heading

Étape 1 : Créez le fichier docker-compose.yml Link to heading

Tout d’abord, créez un répertoire pour Portainer puis créez un fichier docker-compose.yml à l’intérieur :

mkdir portainer && cd portainer
vim docker-compose.yml

Copiez et collez le contenu suivant dans le fichier :

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"   # Web UI access (HTTP)
      - "9443:9443"   # Web UI access (HTTPS)
      - "8000:8000"   # Edge Agent port
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    networks:
      - portainer_network

  agent:
    image: portainer/agent:latest
    container_name: portainer_agent
    restart: always
    environment:
      AGENT_CLUSTER_ADDR: tasks.agent
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
    networks:
      - portainer_network

networks:
  portainer_network:

volumes:
  portainer_data:

Étape 2 : Démarrez Portainer Link to heading

Démarrez maintenant Portainer en utilisant Docker Compose :

docker-compose up -d

Étape 3 : Accédez à Portainer Link to heading

  • Pour accéder à l’interface de Portainer via HTTP, allez à http://localhost:9000.
  • Pour accéder à Portainer via HTTPS (avec le certificat auto-généré de Portainer), allez à https://localhost:9443. Vous pourriez voir un avertissement de sécurité car le certificat n’est pas signé par une autorité de certification reconnue.

Partie 2 : Installation de Portainer avec des Certificats Auto-Signés Link to heading

Si vous préférez utiliser vos propres certificats auto-signés pour sécuriser Portainer, suivez ces étapes.

Étape 1 : Générez des Certificats Auto-Signés Link to heading

Si vous n’avez pas déjà de certificats, vous pouvez les générer en utilisant OpenSSL :

openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out cert.csr
openssl x509 -req -days 365 -in cert.csr -signkey key.pem -out cert.pem

Cela créera deux fichiers :

  • key.pem : La clé privée.
  • cert.pem : Le certificat auto-signé.

Placez ces fichiers dans un répertoire dédié, tel que /path/to/certs/.

Étape 2 : Modifiez le fichier docker-compose.yml Link to heading

Ouvrez le fichier docker-compose.yml et modifiez-le pour utiliser vos certificats auto-signés :

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"   # Web UI access (HTTP)
      - "9443:9443"   # Web UI access (HTTPS)
      - "8000:8000"   # Edge Agent port
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
      - /path/to/certs/cert.pem:/certs/portainer.crt   # Monter le certificat
      - /path/to/certs//key.pem:/certs/portainer.key    # Monter la clé privée
    networks:
      - portainer_network
    environment:
      - SSL_CERTIFICATE=/certs/portainer.crt   # Path to the certificate in the container
      - SSL_CERTIFICATE_KEY=/certs/portainer.key   # Path to the private key in the container
      
  agent:
    image: portainer/agent:latest
    container_name: portainer_agent
    restart: always
    environment:
      AGENT_CLUSTER_ADDR: tasks.agent
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
    networks:
      - portainer_network

networks:
  portainer_network:

volumes:
  portainer_data:

😉 Remplacez /path/to/certs/ par le chemin réel où vos certificats sont stockés.

Étape 3 : Démarrez Portainer Link to heading

Démarrez Portainer en utilisant Docker Compose comme précédemment :

docker-compose up -d

Étape 4 : Accédez à Portainer Link to heading

Accédez à Portainer via HTTPS à https://localhost:9443. Votre certificat auto-signé sera utilisé pour sécuriser la connexion. Notez que vous verrez toujours un avertissement de sécurité dans le navigateur, mais la connexion sera cryptée.

Conclusion Link to heading

Vous avez maintenant installé avec succès 🎉 Portainer en utilisant Docker Compose, soit avec les paramètres par défaut, soit avec vos propres certificats auto-signés.

Ce tutoriel vous fournit une base solide pour gérer vos environnements Docker de manière efficace et sécurisée.