Portainer sur Docker Swarm - Management Web
Aucune installation système requise - Portainer s'installe entièrement en conteneur Docker via son image officielle, suivant la méthodologie recommandée par Portainer. Cette approche garantit une installation propre, isolée et facile à maintenir.
Installation avec Docker Swarm
Fichier docker-compose.yml
services:
portainer:
container_name: portainer
image: portainer/portainer-ce:lts
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${PWD}/data:/data
deploy:
replicas: 1
labels:
- "traefik.enable=true"
- "traefik.http.routers.portainer.rule=Host(`portainer.domain.tld`)"
- "traefik.http.routers.portainer.entrypoints=websecure"
- "traefik.http.routers.portainer.tls=true"
- "traefik.http.routers.portainer.tls.certresolver=letsencrypt"
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
placement:
constraints:
- node.role == manager
networks:
- traefik-network
networks:
traefik-network:
external: true
Déploiement
1. Créer le dossier du projet
mkdir -p /cephfs/services/portainer
cd /cephfs/services/portainer
2. Déployer le stack
docker stack deploy -c docker-compose.yml portainer
3. Vérifier le déploiement
docker service ls
docker service logs portainer_portainer
Configuration Détaillée
Volumes Expliqués
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${PWD}/data:/data
- docker.sock : Donne à Portainer l'accès à l'API Docker
- /data : Stocke la configuration et données de Portainer
Configuration Traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.portainer.rule=Host(`portainer.domain.tld`)"
- "traefik.http.routers.portainer.entrypoints=websecure"
- "traefik.http.routers.portainer.tls=true"
- "traefik.http.routers.portainer.tls.certresolver=letsencrypt"
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
- Rule : Accessible via
portainer.domain.tld
- SSL Automatique : Certificat Let's Encrypt généré automatiquement
- Port : Portainer écoute sur le port 9000 en interne
Contrainte Swarm
placement:
constraints:
- node.role == manager
- Manager uniquement : Portainer doit tourner sur un nœud manager pour accéder au cluster Swarm
Première Configuration
Accès initial
- Naviguez vers
https://portainer.domain.tld
- Créez un compte administrateur
- Sélectionnez "Docker" comme environnement (pas Podman)
Configuration recommandée
- Temps d'inactivité : 30 minutes
- Backup automatique : Activé
- Notifications : Configurer selon besoins
Fonctionnalités Principales
Gestion des Stacks
- Déploiement de docker-compose.yml
- Visualisation des services
- Logs en temps réel
Monitoring
- Utilisation ressources (CPU, RAM, réseau)
- État des conteneurs et services
- Métriques de performance
Sécurité
- Gestion des utilisateurs et rôles
- Audit des actions
- Restrictions d'accès
Dépannage
Problèmes courants
# Vérifier les logs
docker service logs portainer_portainer --tail 20
# Vérifier l'état du service
docker service ps portainer_portainer
# Regénérer les certificats si besoin
docker stack rm portainer
docker stack deploy -c docker-compose.yml portainer
Accès au socket Docker
# Vérifier les permissions
ls -la /var/run/docker.sock
Documentation Officielle
- Documentation Portainer - Guide complet
- Installation sur Swarm - Méthode officielle
- API Reference - Pour l'intégration
Cette configuration fournit une interface de management Docker complète, sécurisée et facile d'accès pour administrer l'ensemble de l'infrastructure.