GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Traefik per i contenitori Docker su Ubuntu

Questo post riguarda Traefik per i contenitori Docker.

Introduzione alla configurazione

Come avviene la magia

Traefik per container Docker

Se non hai ancora installato la finestra mobile, puoi trovare le istruzioni per Ubuntu o Debian. Questa guida utilizza docker-compose per eseguire Traefik, quindi è necessario installare anche docker-compose. Le due guide collegate ti aiuteranno a configurare la composizione mobile sul tuo host.

Iniziamo configurando Traefik.

Per prima cosa, crea alcuni file e directory di cartelle per i nostri contenitori:

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

Genera password sicura

Crea un file di configurazione e imposta una password crittografata per accedere al dashboard di traefik. È possibile utilizzare l'utilità htpasswd per creare la password crittografata. Per utilizzare l'utilità htpasswd, installa l'utilità con il seguente comando

$ sudo apt-get install -y apache2-utils

Quindi esegui il comando seguente per generare la password sicura

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

Ho usato "unixcop@123" per crittografare. Puoi avere le tue ipotesi. L'utente è considerato "unixcop", puoi sostituirlo con il tuo nome utente.

Copia l'output generato automaticamente e salvalo da qualche parte poiché è necessario utilizzare questa password crittografata nel file di configurazione di Traefik per impostare l'autenticazione di base per la dashboard di Traefik

traefik.yml

Quindi apriamo il nostro file di configurazione traefik appena creato con un editor a tua scelta.

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

Crea un docker-compose.yml file in cui definirai un reverse-proxy servizio che utilizza l'immagine ufficiale di 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

Con il nostro docker-compose.yml stiamo definendo il container Docker di Traefik con tutte le impostazioni e i file di configurazione. Per far funzionare Traefik devi solo regolare alcune impostazioni:

  • sostituisci entrambi traefik.domain.tld con il tuo nome di dominio. Questo dominio dovrebbe essere un sottodominio come ad esempio traefik.ae3.ch. Successivamente potrai accedere a Traefik Dasboard con questo (sotto)dominio.

Crea rete Docker per Traefik

È una buona idea configurare una rete Docker separata utilizzata da Traefik e da tutti gli altri container Docker che vorresti rendere disponibile da Traefik.

Per creare questa rete Docker, tutto ciò che devi fare è incollare il seguente comando nella tua CLI:

docker network create proxy

Esegui Traefik

docker-compose up -d

Dopo pochi secondi puoi controllare e accedere alla tua Dashboard Traefik dal tuo dominio personalizzato che hai inserito nel tuo docker-compose.yml


Ubuntu
  1. Come installare Docker su Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  2. Firefox "clone" per Ubuntu?

  3. Virtualbox 5.1.2 per Ubuntu 14.04.5?

  4. Problemi Docker in Ubuntu 20.04?

  5. Ccleaner è utile per Ubuntu?

Come gestire i contenitori Docker con Rancher su Ubuntu

Come gestire i contenitori Docker usando Portainer su Ubuntu

Come installare Docker su Ubuntu 20.04, 18.04, 21.04

Come installare i container Docker tramite Cockpit su Ubuntu 20.04 LTS

Come installare Docker su Ubuntu 14.04

Usa Ngnix per proxy Docker Containers su Ubuntu