Skip to content

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

  1. Créer admin account
  2. Username : admin
  3. Password : [sécurisé 12+ caractères]

Environnements

Portainer gère 3 environnements :

  1. Local (LXC 101) - Management containers

    • Portainer lui-même
    • Homepage
    • Zensical
    • CoolerControl
  2. Remote (LXC 100) - Media containers via Agent

    • Jellyfin
    • Stack *Arr (Sonarr, Radarr, Prowlarr, Bazarr)
    • SABnzbd
    • Recyclarr
  3. 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

  1. Type : Agent
  2. Environment URL : <IP>:9001
  3. Name : Nom descriptif
  4. 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

  1. Upload docker-compose.yml
  2. Deploy stack
  3. Update stack (redeploy)
  4. 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

  1. Containers → [Container] → Stop
  2. Images → Pull nouveau tag
  3. Containers → Recreate
  4. Start container

Restart Stack Complet

# Via Portainer UI
Stacks  [Stack]  Stop
Stacks  [Stack]  Start

# Ou via CLI
docker compose restart

Logs Debugging

  1. Containers → [Container] → Logs
  2. Auto-refresh : ON
  3. Lines : 500

Users & Access Control

Créer User

Settings → Users → Add User

Username: viewer
Password: [secure_password]
Role: Read-only (ou Standard)

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 :

# Retirer du docker-compose.yml
ports:
    - "8000:8000" # Supprimer cette ligne

Restrict Access

Portainer écoute 0.0.0.0 (tous interfaces). Pour restreindre :

ports:
    - "127.0.0.1:9000:9000" # Localhost seulement

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

Ressources