Parce qu'il y a toujours une solution...

Portainer est une application web permettant de gérer les conteneurs d'une plateforme Docker et/ou Docker-Swarm.
En plus d'être visuellement agréable et moderne, vous pourrez avoir accès à une multitude d'options. L'article ci-dessous vous permettra de créer un conteneur pour Portainer avec en prime les labels correspondant à une configuration pour Traefik v2.


Découverte (rapide) de Portainer

Un petit conteneur pour superviser tous les autres - telle est la philosophie introduite par Portainer, en gardant à l'esprit la simplicité d'exploitation. Via cette application, vous pourrez entre-autre :

  • Superviser les conteneurs (ressources utilisées, voir les logs des conteneurs, inspecter la configuration des conteneurs...)
  • Gérer vos conteneurs (administration générale [création, suppression, regénérer, éditer et redéployer], et de l'exploitation [démarrer, éteindre, redémarrer, tuer, mettre en pause])
  • Gérer les images Docker, les réseaux, les volumes...

L'utilisateur par défaut se nomme "admin" - vous initierez son mot de passe lors de la première connexion / affichage de la console web de Portainer.


Docker-compose

Le fichier docker-compose pour Portainer est très simple - il n'y a pas non plus beaucoup de possibilités pour que le service fonctionne. Dans l'idée, Portainer doit avoir un entrypoint correspondant au socket de Docker (de préférence en lecture seule, pas besoin d'écriture) et on expose le port 9000 utilisé par le service. Pour accéder à votre conteneur Portainer, ajoutez le bon réseau sous la ligne networks: et le tour est joué.
Une commande supplémentaire est passée pour que l'application puisse avoir accès à votre daemon Docker.

version: '3.7'
services:
  portainer:
    image: portainer/portainer
    restart: always
    command: -H unix:///var/run/docker.sock
    port:
      - 9000:9000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /srv/docker/portainer-data:/data
    networks:
      - oueb
    
    ## FACULTATIF - configuration à utiliser avec Traefik
    labels:
      - traefik.enable=true
      - traefik.http.routers.portainer.rule=Host(`portainer.ndd.com`)
      - traefik.http.services.portainer.loadbalancer.server.port=9000
(portainer) docker-compose.yml

Vous constaterez que la fin du code correspond aux labels utilisés par Traefik, pour router le flux vers Portainer - si vous utilisez cette méthode, vous devrez retirer la ligne "port: - 9000:9000", puisque c'est Traefik qui exposera le port et non docker.

Enregistrez les modifications du conteneur puis lancez un docker-compose up -d - Portainer sera accessible via le port 900 (http://ip-portainer:9000).


Quelques photos concernant l'interface :


Mon utilisation de Portainer

A ce jour, j'utilise cette application pour manager mes conteneurs de façon simple : je vois les logs des conteneurs  (en cliquant sur "Containers" puis sur l'icône en forme de document à côté du CT ciblé), j'en redémarre certains en fonction des modifications effectuées dans les fichiers de configuration ou tout simplement voir ce qu'il se passe...

Ce que j'apprécie aussi de Portainer, c'est sa simplicité. Pas 590823 menus, uniquement des accès rapides. Je n'exploite pas la possibilité de créer des conteneurs / stacks depuis l'application, préférant un contrôle total via le fichier docker-compose.yml.

Portainer mer permet aussi de faire un ménage sur les images stockées et les volumes temporaires - en quelques clics, la vidange de votre Docker peut être opérée !!

Si vous avez des questions sur l'outil, n'hésitez pas...