[Docker] Installer Portainer en Docker
-
Installation de Portainer
– Portainer vous permets de gérer Docker dans une interface web.
– Portainer lui-même se lance en tant que container Docker, très léger avec ses 4 Mo seulement.
– D’abord, il faut créer/monter le socket local de docker en tant que volume Docker , vous pouvez le voir comme un partage qui sera monté dans votre conteneur.
Si vous ne créez pas ce volume, à chaque redémarrage de votre conteneur toutes les données seront effacées pour revenir à l’état initial. C’est ce volume que vous devez sauvegarder à minima. Bref, vous pouvez le créer comme ça:
docker volume create portainer_data
– Puis on créé simplement le conteneur pour Portainer :
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
- -d: mode detached (un peu similaire à un mode daemon), pour éviter d’avoir les redirections d’entrée sortie de votre conteneur dans votre shell.
- -p 8000:8000 -p 9000:9000: c’est pour redirection de port, la partie réseau de Docker fonctionne via un réseau local privé (dans 172.16.0.0/12 par défaut) et va mettre en place un NAT avec iptables devant docker pour permettre d’accéder au service depuis l’extérieur.
- –name=portainer: le nom que vous voulez donner à votre conteneur et qui sera affiché dans l’interface.
- –restart=always: le comportement que docker doit avoir en cas d’arrêt du conteneur.
- -v portainer_data:/data: indique où monter le volume qu’on a créé dans le conteneur (et pareil pour la socket docker juste avant pour que portainer communique avec docker).
Configuration de Portainer
– L’accès via l’URL suivante:
http://ip.de.votre.machine:9000
– Une fois sur l’interface, paramétrer le mot de passe admin:
– La prochaine étape est de configurer l’environnement Docker sur lequel se connecter et que Portainer pourra gérer.
– Ici, nous allons sélectionner Docker-Manage the local Docker environment (on a déjà monté le socket Docker en tant que volume.)
et on clique sur Connect:
– On se retrouve connecté sur l’interface d’accueil, le dashboard, où vous aurez un résumé des environnements Docker que Portainer peut administrer.
– En cliquant dessus, vous accéderez aux différentes fonctions de gestion des images, des containers, des stacks, …
– Il suffit de cliquer sur local ci-dessous pour lister vos dockers disponibles :
– Vous pouvez afficher, les containers Docker que vous avez déjà sur votre hôte en cliquant sur containers :
– On retrouve alors les 2 conteneurs que l’on a mis en place:
Accès HTTPS via reverse proxy Nginx
- On installe nginx de manière normale. Vous pouvez aussi le “dockeriser” si vous voulez
apt install nginx
- On créé et on édite le fichier de configuration:
nano /etc/nginx/apps/portainer.conf
location /portainer/ { proxy_pass http://127.0.0.1:9000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host:443; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Port 443; proxy_set_header X-Forwarded-Proto $scheme; # Websocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; }
ou
location /portainer/ { resolver 127.0.0.1 valid=5s; proxy_pass http://127.0.0.1:9000/; proxy_set_header Host $host; }
– On stoppe le conteneur docker :
docker stop portainer
– On redémarre nginx:
systemctl restart nginx
– On redémarre le conteneur docker :
docker start portainer
– Accès HTTPS en reverse proxy: