Portainer - Gestion Docker UI
Interface web de gestion et monitoring pour containers Docker.
Informations
| Paramètre | Valeur |
|---|---|
| Container | LXC 101 - management |
| IP:Port | 192.168.1.12:9000 |
| Image | portainer/portainer-ce:latest |
| Version | Community Edition 2.21 |
Configuration Docker
services:
portainer:
container_name: portainer
image: portainer/portainer-ce:latest
ports:
- "9000:9000"
- "8000:8000" # Edge Agent (non utilisé)
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
restart: unless-stopped
Accès Interface
URL : http://192.168.1.12:9000
Premier Login
- Créer admin account
- Username :
admin - Password : [sécurisé 12+ caractères]
Environnements
Portainer gère 2 environnements :
- Local (LXC 101) - Management containers
- Portainer lui-même
- Homepage
-
MkDocs
-
Remote (LXC 100) - Media containers
- Configuration nécessaire via API/Socket
Gestion LXC 100 depuis Portainer
Configuration Agent (optionnel)
Sur LXC 100 :
# Ajouter à 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
Dans Portainer UI :
- Settings → Environments → Add Environment
- Type : Docker Standalone
- Agent : http://192.168.1.11:9001
- Name : LXC-100-Media
Alternative : Docker Socket Remote
# Sur LXC 100 - exposer Docker socket (RISQUE SÉCURITÉ)
# /etc/docker/daemon.json
{
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
systemctl restart docker
⚠️ Non recommandé en production - Socket non sécurisé.
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.11:9001/ping
Alternatives
- Dockge : Plus simple, focus docker-compose
- Yacht : Lightweight alternative
- CLI only :
docker compose+ctop