{{tag>sysadmin netadmin docker webui gui}} ====== Portainer ====== Portainer permet de gérer dans un environnement graphique web les conteneurs tout au long de leur cycle de vie. Portainer comprend deux éléments: * Le serveur Portainer: exécute l'interface de gestion WebUI, dialogue avec les agents. * L'agent Portainer, s'installe sur les environnements docker distants à gérer. Chaque élément s’exécute dans des conteneurs au sein d'un docker engine ou dans un cluster Swarm. Par défaut l'interface de gestion (le serveur Portainer) est exposée sur le port 9000 du container. ===== Installation ===== Créer un volume: docker volume create portainer_databank Déployer Portainer sur le serveur docker local via l'image docker disponible sur le registry: docker run -d -p 9000:9000 --name=portainer \ --restart=always -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_databank:/data portainer/portainer-ce Via le navigateur, on termine la configuration à l'URL http://localhost:9000: * On définit un mot de passe pour admin * On choisit de gérer l'environnement docker local ===== Portainer derrière un reverse proxy Traefik ===== Pour placer Portainer derrière le reverse proxy Traefik, on peut créer un service avec docker-compose. Pour que Traefik puisse communiquer avec le service, le service doit être sur le même réseau que Traefik. Dans cet exemple le réseau de Traefik préexistant est nommé "http_loadbalancing_default" version: "3.3" services: portainer: image: "portainer/portainer-ce" container_name: "portainer" restart: always networks: - http_loadbalancing_default volumes: - type: volume source: portainer_databank target: /data - type: bind source: /var/run/docker.sock target: /var/run/docker.sock labels: - "traefik.http.routers.portainer.rule=Host(`portainer.localhost`)" - "traefik.http.services.portainer.loadbalancer.server.port=9000" - "traefik.http.routers.portainer.entrypoints=http" volumes: portainer_databank: networks: http_loadbalancing_default: external: name: http_loadbalancing_default ===== Masquer des conteneurs ===== Lors de la création d'un conteur, un label peut être définit pour que le conteneur ne soit pas pris en compte par Portainer: ===== Références ===== * https://documentation.portainer.io/ * https://documentation.portainer.io/v2.0/deploy/linux/