miroir de
https://github.com/PAPAMICA/Wiki-Tech.io.git
synchronisé 2024-11-27 19:50:37 +01:00
97 lignes
6,4 Kio
HTML
97 lignes
6,4 Kio
HTML
<!--
|
|
title: Portainer
|
|
description: Une interface web pour gérer Docker !
|
|
published: true
|
|
date: 2021-05-20T14:34:17.187Z
|
|
tags:
|
|
editor: ckeditor
|
|
dateCreated: 2021-05-01T18:33:26.866Z
|
|
-->
|
|
|
|
<figure class="image image_resized" style="width:45.21%;"><img src="https://linuq.org/_media/projets/portainer_io.png" alt="Les couches logicielles utilisées [LinuQ: Logiciels libres à Québec]"></figure>
|
|
<h1>Présentation</h1>
|
|
<p>Docker est un outil utilisable en ligne de commande, pour le coup c’est pas hyper agréable à utiliser au quotidien malgré que cela soit tout à fait possible. Mais pour une intervention rapide, l'utilisation d'une interface web qui permette de gérer les opérations courantes sur ses conteneurs est très utile. Et ça tombe bien, il existe Portainer pour ça et manager facilement vos Dockers ! Portainer s’installe comme un conteneur docker pour simplifier sont déploiement. Portainer permet de gérer une bonne partie des éléments de docker : conteneurs, images, volumes, réseaux, utilisateurs, etc. Il peux aussi contrôler un autre serveur Docker à distance grâce à un agent et permet de déployer des applications dans des conteneurs en juste quelques clics.</p>
|
|
<h1>Installation</h1>
|
|
<h2>Docker</h2>
|
|
<p>Une simple commande permet de lancer un container avec Portainer : </p>
|
|
<pre><code class="language-plaintext">docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /apps/portainer:/data portainer/portainer</code></pre>
|
|
<p> </p>
|
|
<h2>Docker-compose</h2>
|
|
<p>Dans mon cas je préfère toujours avoir un docker-compose, je trouve cela bien plus pratique !</p>
|
|
<pre><code class="language-plaintext">version: '2'
|
|
|
|
services:
|
|
portainer:
|
|
image: portainer/portainer-ce:latest
|
|
container_name: portainer
|
|
restart: unless-stopped
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
environment: # Ajout de mes templates
|
|
TEMPLATES: https://github.com/PAPAMICA/docker-compose-collection/blob/master/templates-portainer.json
|
|
volumes:
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- /apps/portainer/data:/data
|
|
|
|
# Facultatif avec Traefik
|
|
#ports:
|
|
# - 9000:9000
|
|
|
|
# Facultatif : Support de Loki
|
|
logging:
|
|
driver: loki
|
|
options:
|
|
loki-url: "$URL_LOKI"
|
|
loki-external-labels: service={{.Name}}
|
|
|
|
# Facultatif : Support de Traefik
|
|
networks:
|
|
- proxy
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.portainer.entrypoints=http
|
|
- traefik.http.routers.portainer.rule=Host("$URL")
|
|
- traefik.http.middlewares.portainer-https-redirect.redirectscheme.scheme=https
|
|
- traefik.http.routers.portainer.middlewares=portainer-https-redirect
|
|
- traefik.http.routers.portainer-secure.entrypoints=https
|
|
- traefik.http.routers.portainer-secure.rule=Host("$URL")
|
|
- traefik.http.routers.portainer-secure.tls=true
|
|
- traefik.http.routers.portainer-secure.tls.certresolver=http
|
|
- traefik.http.routers.portainer-secure.service=portainer
|
|
- traefik.http.services.portainer.loadbalancer.server.port=9000
|
|
- traefik.docker.network=proxy
|
|
|
|
networks:
|
|
proxy:
|
|
external: true</code></pre>
|
|
<p> </p>
|
|
<blockquote>
|
|
<p><strong>Attention :</strong> Pensez à changer dans le docker-compose ou à définir les variables suivantes : <i><strong>$URL_LOK</strong></i><strong>I </strong>et <strong>$URL</strong> en fonction de votre installation.</p>
|
|
</blockquote>
|
|
<p>Votre Portainer sera accessible directement depuis l'URL que vous lui aurais attribué avec Traefik ou depuis <code>http://<server>:<port></code>.</p>
|
|
<h1>Configuration</h1>
|
|
<h2>Connexion au serveur hôte</h2>
|
|
<p>Une fois installer, il faut créer le compte administrateur et connecter Portainer à la socket Docker : vu que nous donnons au container un accès direct à la socket (via le volume bind), Portainer à d'office accès et peux contrôler Docker de notre serveur hôte. Choisissez donc “<i><strong>Socket</strong></i>” et cliquez sur “<i><strong>Valider</strong></i>”.</p>
|
|
<p> </p>
|
|
<h2>Connexion à un serveur externe avec l'agent</h2>
|
|
<p>Il est possible de contrôler un autre serveur sur lequel Docker est installé grâce à un agent Portainer qui se déploie lui aussi dans un container en une simple commande :</p>
|
|
<pre><code class="language-plaintext">docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/v
|
|
olumes:/var/lib/docker/volumes portainer/agent</code></pre>
|
|
<p>Pour ajouter le serveur à notre Portainer, rendez vous dans “<i><strong>Settings > Endpoints > + Add endpoint</strong></i>” :</p>
|
|
<figure class="image image_resized" style="width:94.7%;"><img src="/image_2021-05-03_213224.png"></figure>
|
|
<p>Et configurez votre serveur de la sorte : </p>
|
|
<figure class="image image_resized" style="width:93.84%;"><img src="/image_2021-05-03_213454.png"></figure>
|
|
<p>Et voilà ! Votre serveur sera maintenant disponible dans Portainer !</p>
|
|
<p> </p>
|
|
<h2>Ajouter des modèles d'applications</h2>
|
|
<p>Etant un gars super top génial (merci de ne pas me contredire.), j'ai fait un modèle de toutes les applications que j'utilise au quotidien… Et tout ça intégré directement dans Portainer pour déployer les applications en juste quelques clics. Vous ai-je dis que ces applications supportent Traefik et Loki ? Genial non ? Allez, allons y !</p>
|
|
<p>Il suffit simplement de mettre l'url de mon repo dans la configuration : <code>https://github.com/PAPAMICA/docker-compose-collection/blob/master/templates-portainer.json</code></p>
|
|
<figure class="image image_resized" style="width:95.97%;"><img src="https://camo.githubusercontent.com/576de2c1f125016f37a6ddfb36546e78cfb49cd8a61ce8c156e329c723c424f0/68747470733a2f2f692e696d6775722e636f6d2f4d34397373434e2e706e67"></figure>
|
|
<p>Et maintenant rendez-vous directement dans l'onglet “App Templates” pour découvrir la liste des applications disponibles :</p>
|
|
<figure class="image image_resized" style="width:95.5%;"><img src="/image_2021-05-03_211850.png"></figure>
|
|
<p> </p>
|
|
<h2>Connexion avec Keycloak</h2>
|
|
<p>Vous retrouverez ici l'installation de Keycloak : <a href="/SelfHosted/Keycloak">/SelfHosted/Keycloak</a></p>
|
|
<p>La configuration de l'authentification avec Keycloak se fait directement dans les paramètres comme ceci :</p>
|
|
<figure class="image image_resized" style="width:95.43%;"><img src="/image_2021-05-03_212514.png"></figure>
|