Sur Cachem, on parle souvent de Docker, des conteneurs et parfois même nous parlons de l’outil Portainer. Cependant, cet outil est souvent mal connu de nos lecteurs. C’est la raison pour laquelle nous avons décidé d’aller au-delà et de vous expliquer pourquoi Portainer est LA solution de gestion des conteneurs Docker…
Qu’est-ce que Portainer ?
Portainer est une interface Web (WebUI) open source qui permet de créer, modifier, redémarrer, surveiller… des conteneurs Docker. Le petit plus de l’outil, c’est également de pouvoir interconnecter plusieurs serveurs utilisant Docker (via Portainer Agent), afin de contrôler/surveiller les conteneurs répartis sur plusieurs serveurs depuis la même interface et cela très simplement.
A titre d’exemple, Synology propose sur ses NAS, Docker DSM pour la gestion des conteneurs. Cependant, il est aussi possible d’installer Portainer sur un NAS Synology (voir en fin d’article), un Asustor ou encore un QNAP.
Portainer propose une version de démonstration en suivant ce lien, il faut se connecter avec les identifiants : admin / tryportainer.
Que faire avec Portainer ?
L’outils est disponible en 2 versions, une gratuite dite Portainer CE (Community Edition) et une payante Portainer Business. Vous pouvez comparer les fonctionnalités des deux versions sur cette page. Nous allons ici, aborder uniquement les fonctions de la version gratuite.
Les fonctions qui nous intéressent plus particulièrement :
- Gestion des applications
- Créer / Démarrer / Arrêter des conteneurs individuels
- Éditer / Dupliquer un conteneur
- Voir les statistiques / journaux des conteneurs Utiliser la console pour interagir avec un conteneur Avoir une vue d’ensemble sur ses conteneurs
- Stacks
- Déployer des ensembles de conteneurs
- Éditer / Modifier des ensembles de conteneurs
- Réseaux
- Créer de nouveaux réseaux bridge
- Créer de nouveaux réseaux MACVLAN
Création d’un conteneur
La création de conteneurs est très simple, depuis la page « Containers », on clique sur « Add container » :
Puis une page afin de renseigner les paramètres du conteneur s’ouvre ! On y renseigne, le nom du conteneur, le nom de l’image qu’on souhaite utiliser… tout un tas d’options sont disponibles :
Petit plus par rapport à Docker DSM de Synology, il est possible de renseigner directement dans « Ressources » le chemin vers dev/dri/ pour faire du transcodage hardware sur Plex ou d’indiquer des « labels » sur le conteneur pour qu’il soit surveillé par Watchtower par exemple ( choses qui ne sont pas possibles directement via Docker DSM ).
Pour les conteneurs déjà existants, il est possible de les éditer simplement, pour par exemple, rajouter un label, ou un dossier, tout cela depuis la fonction Edit/Duplicate de Portainer !
Les logs (journaux) de chaque conteneur sont consultables et téléchargeables afin de les partager (par exemple en cas de demande de support) :
Avec la console, il est possible d’interagir directement dans le conteneur :
Vue d’ensemble
Une fois nos conteneurs en place, Portainer propose sur la page d’accueil « Home », une vue globale sur nos conteneurs.
On y retrouve, le nombre total de conteneurs ainsi que les infos sur combien sont en route, arrêtés Si on rentre plus en détails, on retrouve la liste des conteneurs :
Avec des infos supplémentaires sur les conteneurs, comme les ports exposés, la date de création, mais aussi la possibilité de voir l’utilisation CPU/RAM/Réseau et tout un tas d’actions possible comme Démarrer, Arrêter, Redémarrer, Supprimer, …
Vous avez dit « Stacks » ?
Les Stacks sont un ensemble de conteneurs deéployés via un fichier docker-compose. Le fichier peut-être soit copier/coller et éditer directement dans l’éditeur de Portainer, ou Uploader.
Cela permet de déployer rapidement un conteneur (ou un ensemble de conteneurs). L’édition est également facilitée. Après modification du docker-compose présent dans la stack, un seul clic suffit pour que les conteneurs concernés adaptent leur configuration !
Vue pratique sur les réseaux et les images Docker
Portainer offre également une gestion facilitée des réseaux bridge ou macvlan depuis l’onglet « Network » :
Directement depuis l’interface web, il est possible de créer de nouveaux réseaux, de supprimer ceux qui ne sont plus utilisés…
L’outil simplifie aussi la gestion des images Docker, cela se passe dans l’onglet « Images » :
On y retrouve alors toutes les images docker présentent sur le système, avec différentes infos ( Nom, taille, hash, … ). Mais également, le repère « Unused » qui signale si une image est utilisée ou non, bien pratique pour nettoyer son système des images que l’on utilise plus.
Portainer Agent, pour relier ses instances
Quoi de plus sympa que de gérer tous ses conteneurs docker au même endroit ? Je dirais pouvoir gérer tous ses serveurs docker au même endroit ! C’est ce que propose Portainer avec Portainer Agent.
Portainer Agent s’installe en Docker sur les clients que l’on souhaite pouvoir gérer à distance. Puis sur l’hôte principal, nous allons les connecter afin de pouvoir les gérer. Cela permet ensuite, d’avoir sur la même page d’accueil de Portainer, la vue sur nos différents hôtes Docker, sans avoir à se connecter sur chaque instance de l’outil.
L’image du dessus représente un serveur Docker « EVOServ » auquel nous avons rattaché deux autres serveurs docker ( « raspberry » et « debian-web » ). En un seul coup d’œil, on peut voir si tout fonctionne correctement, le nombre de conteneurs et leurs statuts, et cela pour chaque machine connectée à notre instance Portainer via Portainer Agent !
Comment l’installer sur mon NAS/Serveur ?
La solution est utilisable sur toutes les machines (Serveurs / NAS / Mini-PC… ) proposant Docker*. Pour ceux qui souhaiteront se lancer dans l’installation, j’ai rédigé différents tutoriels sur le Forum des NAS :
- Installer Portainer en Docker sur un NAS Synology
- Installation de Docker, Docker-compose et Portainer sur Raspbian (Raspberry Pi)
- Installation de Docker, Docker-compose et Portainer sur Debian 10
- [OMV 5] Installation de Docker + Portainer avec OMV-Extras
- Installation de Portainer Agent et Configuration sur une instance Portainer
Conclusion
Portainer est une solution compléte que nous avons abordée ici qu’une petite partie de ses possibilités. Pour ceux qui usent actuellement des lignes de commande, il apporte un confort énorme, surtout au niveau de la supervision. Je l’utilise au quotidien, et je ne m’en passerai plus. L’essayer c’est l’adopter !
* Attention au conflit possible avec d’autres interfaces de gestion de conteneur installé sur votre système, par exemple à Unraid, ou TrueNAS.