GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Traefik pour les conteneurs Docker sur Ubuntu

Cet article concerne Traefik pour Docker Containers.

Présentation de la configuration

Comment la magie opère

Traefik pour les conteneurs Docker

Si vous n'avez pas encore installé Docker, vous pouvez trouver des instructions pour Ubuntu ou Debian. Ce guide utilise docker-compose pour exécuter Traefik, il est donc nécessaire d'installer également docker-compose. Les deux guides liés vous aideront à configurer docker-compose sur votre propre hôte.

Commençons par configurer Traefik.

Tout d'abord, créez quelques fichiers et répertoires de dossiers pour nos conteneurs :

mkdir -p /opt/containers/traefik
mkdir /opt/containers/traefik/data
touch /opt/containers/traefik/data/traefik.yml
touch /opt/containers/traefik/data/acme.json
chmod 600 /opt/containers/traefik/data/acme.json

Générer un mot de passe sécurisé

Créez un fichier de configuration et configurez un mot de passe crypté pour accéder au tableau de bord traefik. Vous pouvez utiliser l'utilitaire htpasswd pour créer le mot de passe crypté. Pour utiliser l'utilitaire htpasswd, installez l'utilitaire avec la commande suivante

$ sudo apt-get install -y apache2-utils

Exécutez ensuite la commande suivante pour générer le mot de passe sécurisé

$sudo htpasswd -nb unixcop unixcop@123
unixcop:$$apr1$$zUb/YuK2$$57psQ0U71DlfdHPr0yoHe/

J'ai utilisé "unixcop @ 123" pour chiffrer. Vous pouvez avoir vos propres hypothèses. L'utilisateur est considéré comme "unixcop", vous pouvez le remplacer par votre propre nom d'utilisateur.

Copiez la sortie générée automatiquement et enregistrez-la quelque part car nous devons utiliser ce mot de passe crypté dans le fichier de configuration Traefik pour configurer l'authentification de base pour le tableau de bord Traefik

traefik.yml

Ensuite, nous ouvrons notre fichier de configuration traefik nouvellement créé avec un éditeur de votre choix.

vim /opt/containers/traefik/data/traefik.yml
api:
  dashboard: true
entryPoints:
  http:
    address: ":80"
  https:
    address: ":443"
providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false
certificatesResolvers:
  http:
    acme:
      email: [email protected]   # CHANGE HERE
      storage: acme.json
      httpChallenge:
        entryPoint: http

Créez un docker-compose.yml fichier où vous définirez un reverse-proxy service qui utilise l'image officielle Traefik :

docker-compose.yml

version: '3'
services:
  traefik:
    image: traefik:latest
    container_name: traefik
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    networks:
      - proxy
    ports:
      - 80:80
      - 443:443
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./data/traefik.yml:/traefik.yml:ro
      - ./data/acme.json:/acme.json
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.entrypoints=http"
      - "traefik.http.routers.traefik.rule=Host(`traefik.domain.tld`)"
      - "traefik.http.middlewares.traefik-auth.basicauth.users=unixcop:$$apr1$$zUb/YuK2$$57psQ0U71DlfdHPr0yoHe"
      - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
      - "traefik.http.routers.traefik-secure.entrypoints=https"
      - "traefik.http.routers.traefik-secure.rule=Host(`traefik.domain.tld`)"
      - "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
      - "traefik.http.routers.traefik-secure.tls=true"
      - "traefik.http.routers.traefik-secure.tls.certresolver=http"
      - "traefik.http.routers.traefik-secure.service=api@internal"
networks:
  proxy:
    external: true

Avec notre docker-compose.yml, nous définissons le conteneur docker Traefik avec tous les paramètres et fichiers de configuration. Pour que Traefik soit opérationnel, il vous suffit d'ajuster certains paramètres :

  • remplacer les deux traefik.domain.tld avec votre propre nom de domaine. Ce domaine doit être un sous-domaine comme traefik.ae3.ch par exemple. Plus tard, vous pourrez accéder à Traefik Dasboard avec ce (sous-)domaine.

Créer un réseau Docker pour Traefik

C'est une bonne idée de configurer un réseau Docker séparé qui est utilisé par Traefik et tous les autres conteneurs Docker que vous souhaitez mettre à disposition par Traefik.

Pour créer ce réseau Docker, il vous suffit de coller la commande suivante dans votre CLI :

docker network create proxy

Exécuter Traefik

docker-compose up -d

Après quelques secondes, vous pouvez vérifier et accéder à votre tableau de bord Traefik sur votre domaine personnalisé que vous avez entré dans votre docker-compose.yml


Ubuntu
  1. Virtualbox 5.1.2 pour Ubuntu 14.04.5 ?

  2. Ccleaner est-il bénéfique pour Ubuntu ?

  3. Apt-rapide pour Ubuntu 14.04 ??

  4. Alexa pour Ubuntu ?

  5. Comment installer Docker et exécuter des conteneurs Docker dans Ubuntu

Comment gérer les conteneurs Docker avec Rancher sur Ubuntu

Comment gérer les conteneurs Docker à l'aide de Portainer sur Ubuntu

Comment installer Docker sur Ubuntu 20.04, 18.04, 21.04

Comment installer des conteneurs Docker via Cockpit sur Ubuntu 20.04 LTS

Comment installer Docker sur Ubuntu 14.04

Utiliser Ngnix pour proxy Docker Containers sur Ubuntu