::: info
Portainer è una potente interfaccia grafica (GUI) web-based che permette di gestire interi ecosistemi Docker, Swarm o Kubernetes. In questo laboratorio, utilizziamo Portainer per monitorare il ciclo di vita dei container, analizzare i log in tempo reale e gestire i "Stacks" (file Docker Compose) in modo centralizzato.
:::
Portainer gira come un container isolato ma ha bisogno di comunicare con il demone Docker dell'host. Questo avviene tramite il montaggio del Docker Socket (/var/run/docker.sock).
Seguendo le nostre Best Practices, utilizziamo un file Docker Compose per il deploy.
docker-compose.yamlservices:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer-io
restart: unless-stopped
security_opt:
- no-new-privileges:true
ports:
- "8000:8000"
- "9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
networks:
- proxy_net
networks:
proxy_net:
external: true
volumes:
portainer_data:
La sezione Stacks di Portainer è l'equivalente della riga di comando docker-compose. Permette di incollare il codice YAML e gestire l'intero ciclo di vita dell'applicazione. Portainer tiene traccia delle modifiche e permette il redeploy immediato.
Fornisce un accesso immediato a:
/bin/sh o /bin/bash) direttamente nel browser senza bisogno di SSH.Permette di visualizzare le immagini inutilizzate (dangling images) e di pulire il registro locale con un click, liberando spazio prezioso sul disco NVMe/SSD.
Dato che Portainer ha il controllo totale del tuo sistema, la sua sicurezza è prioritaria:
9443 per le connessioni protette./var/run/docker.sock all'interno di un container è un rischio di sicurezza (se il container viene compromesso, l'attaccante ha i privilegi di root sull'host). Per questo motivo, usiamo l'opzione no-new-privileges:true nel file Compose.portainer_data. Esso contiene tutte le configurazioni degli stack e le impostazioni degli utenti.Tags: #Docker #Portainer #GUI #Monitoring #DevOps #Management*