Les couches logicielles utilisées [LinuQ: Logiciels libres à Québec]

Présentation

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.

Installation

Docker

Une simple commande permet de lancer un container avec Portainer : 

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /apps/portainer:/data portainer/portainer

 

Docker-compose

Dans mon cas je préfère toujours avoir un docker-compose, je trouve cela bien plus pratique !

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(\"portainer.$ndd\")
      - 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(\"portainer.$ndd\")
      - 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

Configuration

Connexion  au serveur hôte

Connexion à un serveur externe avec l'agent

Ajouter des modèles d'applications

Connexion avec Keycloak