La gestion de Docker comprend la gestion d’éléments tels que les images, les conteneurs, les volumes et les réseaux. Pour simplifier cette gestion, vous pouvez opter pour une interface graphique conviviale comme Portainer plutôt que d’utiliser la ligne de commande que nous l’avons fait dans les articles précédent. C’est précisément ce que vous offre cet outil.
Présentation de Portainer
Portainer vous offre une interface de gestion conviviale pour les conteneurs et les images Docker, simplifiant ainsi la gestion des conteneurs Docker. Étant lui-même un conteneur Docker, vous pouvez facilement le déployer sur votre système Docker. En se connectant à l’API Docker de votre système, Portainer vous permet de visualiser et de gérer tous les aspects de Docker via une interface web conviviale. Par conséquent, vous pouvez créer et gérer des images, des conteneurs, des volumes et des réseaux sans avoir à mémoriser des commandes Docker complexes. Une fois connecté à Portainer via un navigateur web, vous pouvez alors effectuer des tâches telles que :
- le déploiement de nouveaux conteneurs à partir d’images existantes,
- la surveillance en temps réel des performances de vos conteneurs,
- la gestion de volumes de stockage, et la configuration de réseaux pour vos conteneurs.
Un des avantages de Portainer est sa simplicité d’installation et d’utilisation. Cet avantage fait de Portainer un outil idéal pour gérer Docker.
Installation de Portainer et lancement du conteneur Docker
L’installation est également simplifiée, car Portainer est fourni sous forme d’image Docker, ce qui le rend facile à déployer. Globalement, Portainer facilite la gestion de Docker en rendant les opérations courantes plus simples.
L’image Docker que nous utiliserons est « portainer/portainer-ce :latest ». Nous mapperons deux ports :
- le 8000 qui servira aux requêtes http
- le 9443 pour les requêtes https.
Nous ajouterons l’argument « –restart=always ». Cet argument permet au conteneur de démarrer automatiquement à chaque redémarrage du service Docker.
De plus, Nous monterons deux volumes :
- -v /var/run/docker.sock:/var/run/docker.sock: On monte le socket Docker de l’hôte (/var/run/docker.sock) dans le conteneur. Cela permet à Portainer d’interagir avec le démon Docker de l’hôte, ce qui permettra la gestion des conteneurs.
- -v portainer_data:/data: Cet indicateur monte un volume nommé « portainer_data » dans le conteneur à l’emplacement « /data ». Ce volume est utilisé pour stocker les données de configuration et de stockage persistantes de Portainer.
En considérant tous les points que nous avons traités la commande sera la suivante :
[root@docker ~]# docker run -d -p 9000:9000 -p 9443:9443 -p 8000:8000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Dans l’exemple précédent, nous lançons le conteneur Portainer directement. Comme nous n’avons pas encore téléchargé l’image spécifiée dans la commande, Docker la télécharge automatiquement depuis la plateforme Docker Hub.
Nous configurerons notre pare-feu pour qu’autoriser les requêtes sur le port 9443 et 8000.
[root@docker ~]# firewall-cmd --add-port=8000/tcp --permanent
[root@docker ~]# firewall-cmd --add-port=9443/tcp --permanent
[root@docker ~]# firewall-cmd --reload
Accéder à l’interface web de l’outil
Depuis le navigateur de notre machine connectée au même réseau que celle exécutant Docker, nous devons d’abord accéder à l’URL https://:9443. Ensuite, nous recevrons un avertissement de sécurité car nous utilisons un certificat autosigné. Une fois que nous sommes sur l’interface Portainer, nous serons alors invités à renseigner un mot de passe pour l’utilisateur « admin ». Après avoir configuré le mot de passe, nous pourrons commencer à utiliser Portainer pour gérer nos conteneurs Docker. Enfin, assurons-nous de sauvegarder nos informations de connexion pour un accès futur.
Présentation de l’interface web
Depuis le navigateur de notre machine connectée au même réseau que celle exécutant Docker, nous accédons d’abord à l’URL https://:9443. Ensuite, nous recevons un avertissement de sécurité car nous utilisons un certificat autosigné. Une fois sur l’interface Portainer, nous renseignons un mot de passe pour l’utilisateur « admin ». Après avoir configuré le mot de passe, nous commençons à utiliser Portainer pour gérer nos conteneurs Docker. Enfin, nous sauvegardons nos informations de connexion pour un accès futur.
Nous avons un bref récapitulatif de notre environnement local, dans la capture ci-dessous, nous pouvons voir que nous avons 4 conteneurs qui tournent, 2 volumes ou encore 5 images, nous avons également accès à des informations liées à l’hôte, nous voyons que notre hôte a 4 CPU et 3.8 Go de ram. Pour avoir plus de détails, nous cliquerons sur le bandeau « local ».
En cliquant sur le bandeau « local », nous accédons à une interface qui offre plus d’information et plus d’options sur Portainer.
Sur la partie latérale de Portainer, nous avons accès aux différents composants de Docker. Cliquons sur Containers, nous devrions y voir nos conteneurs et leurs états.
Dans la section Images de Portainer, nous avons accès à nos images, celles qui ne seront pas utilisées seront marquées « Unused ». Nous voyons, en haut de page, que le registry, c’est-à-dire l’endroit où Docker ira chercher les images par défaut. Il est tout à fait possible de télécharger les images Docker en indiquant leur nom dans le champ images.
Dans la partie réseau, il nous sera possible de voir les réseaux créés à l’installation de Docker. Ils sont reconnaissables au tag « system » mais aussi ceux que nous avons créés.
En cliquant sur le nom du réseau, nous connaîtrons les conteneurs qui y sont connectés. Par exemple, reseau_php7 contient deux conteneurs « rp » et « app-php7 ».
La logique restera un peu la même pour les volumes de Portainer.