Portainer¶
Interface web de gestion et monitoring pour containers Docker.
Informations¶
| Paramètre | Valeur |
|---|---|
| Container | LXC 101 - management |
| IP:Port | 192.168.1.101:9443 |
| Image | portainer/portainer-ce:latest |
| Version | Community Edition 2.21 |
Configuration Docker¶
services:
portainer:
container_name: portainer
image: portainer/portainer-ce:latest
ports:
- "9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./portainer:/data
restart: unless-stopped
Accès Interface¶
URL : https://192.168.1.101:9443
Premier Login¶
- Créer admin account
- Username :
admin - Password : [sécurisé 12+ caractères]
Environnements¶
Portainer gère 3 environnements :
-
Local (LXC 101) - Management containers
- Portainer lui-même
- Homepage
- Zensical
- CoolerControl
-
Remote (LXC 100) - Media containers via Agent
- Jellyfin
- Stack *Arr (Sonarr, Radarr, Prowlarr, Bazarr)
- SABnzbd
- Recyclarr
-
Remote (LXC 103) - Network containers via Agent
- Nginx Proxy Manager
- Authelia
- WireGuard
Gestion Environnements Distants¶
Configuration Agent¶
Portainer Agent déployé sur LXC 100 et LXC 103 :
# Dans docker-compose.yml
services:
portainer-agent:
container_name: portainer-agent
image: portainer/agent:latest
ports:
- "9001:9001"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
restart: unless-stopped
Environnements configurés dans Portainer :
| ID | Nom | Type | Agent URL |
|---|---|---|---|
| 3 | LXC 101 - management (local) | Local socket | — |
| 4 | LXC 100 - docker-media | Agent | http://192.168.1.100:9001 |
| 5 | LXC 103 - network-gateway | Agent | http://192.168.1.103:9001 |
| 6 | LXC 104 - services | Agent | http://192.168.1.104:9001 |
| 7 | LXC 105 - web | Agent | http://192.168.1.105:9001 |
Les stacks déployées via GitOps (deploy.yml) apparaissent comme External stacks (lecture seule) dans chaque endpoint.
Ajout d'un Environnement¶
Settings → Environments → Add Environment
- Type : Agent
- Environment URL :
<IP>:9001 - Name : Nom descriptif
- Connect
Fonctionnalités¶
Containers Management¶
Containers → List
- ✅ Start/Stop/Restart/Kill
- ✅ Logs temps réel
- ✅ Stats CPU/RAM/Network
- ✅ Console interactive (exec /bin/bash)
- ✅ Inspect configuration
Images¶
Images → List
- Pull nouvelles images
- Delete images non utilisées
- Tag/Untag images
- Build depuis Dockerfile
Volumes¶
Volumes → List
- Créer volumes
- Browse volume data
- Delete volumes non utilisés
Networks¶
Networks → List
- Créer networks custom
- Inspect network details
- Connect/Disconnect containers
Stacks (Docker Compose)¶
Stacks → Add Stack
- Upload
docker-compose.yml - Deploy stack
- Update stack (redeploy)
- Remove stack
Exemple stack Jellyfin :
services:
jellyfin:
image: jellyfin/jellyfin:latest
ports:
- "8096:8096"
volumes:
- /mnt/storage:/media
devices:
- /dev/dri:/dev/dri
Monitoring¶
Dashboard¶
Home → Quick Actions
- Containers running : X
- CPU usage : X%
- Memory usage : X GB
- Network I/O
Container Stats¶
Containers → [Container] → Stats
- CPU usage graph
- Memory usage graph
- Network I/O graph
- Block I/O
Opérations Courantes¶
Update Container¶
- Containers → [Container] → Stop
- Images → Pull nouveau tag
- Containers → Recreate
- Start container
Restart Stack Complet¶
# Via Portainer UI
Stacks → [Stack] → Stop
Stacks → [Stack] → Start
# Ou via CLI
docker compose restart
Logs Debugging¶
- Containers → [Container] → Logs
- Auto-refresh : ON
- Lines : 500
Users & Access Control¶
Créer User¶
Settings → Users → Add User
Roles :
- Administrator : Full access
- Standard : Manage containers (no settings)
- Read-only : View only
Sécurité¶
Change Admin Password¶
User → My Account → Change Password
Disable Edge Agent¶
Non utilisé dans setup actuel :
Restrict Access¶
Portainer écoute 0.0.0.0 (tous interfaces). Pour restreindre :
Puis accès via reverse proxy (nginx/traefik).
Troubleshooting¶
Portainer Ne Démarre Pas¶
# Vérifier Docker socket
ls -la /var/run/docker.sock
# Permissions
sudo chmod 666 /var/run/docker.sock
# Logs
docker logs portainer
Cannot Connect to Environment¶
# Vérifier agent running
docker ps | grep portainer-agent
# Test connexion
curl http://192.168.1.100:9001/ping
Alternatives¶
- Dockge : Plus simple, focus docker-compose
- Yacht : Lightweight alternative
- CLI only :
docker compose+ctop