2017-09-21 3 views
0

Ich richtete einen Debian-Server, wo ich Docker und Docker-komponieren installiert.Traefik mit Docker-Back-End führt zu schlechten Flucht

habe ich im Hause meines sudo Benutzer einen Ordner mit der folgenden Hierarchie:

~/docker-project 
     - docker-compose.yml 
     - /traefik/traefik.toml 

ich ein docker-compose up -d alles begann ich traefik.mydomain.com erreichen können, die ssl Zertifikat arbeitet als das tut andere Subdomains. Aber wenn ich zu einer meiner Subdomain gehe, um meinen dockerisierten Webservice zu erreichen, bekomme ich eine schlechte Gateway Nachricht in meinem Browser. Wenn ich zu meiner Server-IP-Adresse gehe und den richtigen Port anlege, sehe ich, dass mein Webservice einwandfrei funktioniert.

Also ich denke, ich habe einen Fehler beim Konfigurieren der Docker/Traefik-Beziehung gemacht, aber ich bin nicht in der Lage, wo zu finden.

Hier ist meine traefik.toml:

defaultEntryPoints = ["http", "https"] 

################################################################ 
# Web configuration backend 
################################################################ 
[web] 
address = ":8080" 
[web.auth.basic] 
# User: user | Password: password 
users = ["user:hashedpassword"] 

################################################################ 
# Entry-points configuration 
################################################################ 
[entryPoints] 
    [entryPoints.http] 
    address = ":80" 
    [entryPoints.http.redirect] 
     entryPoint = "https" 
    [entryPoints.https] 
    address = ":443" 
    [entryPoints.https.tls] 

################################################################ 
# Docker configuration backend 
################################################################ 
[docker] 
domain = "mydomain.com" 
watch = true 
exposedbydefault = false 

################################################################ 
# Let's encrypt 
################################################################ 
[acme] 
email = "[email protected]" 
storageFile = "/etc/traefik/acme.json" 
onDemand = false 
onHostRule = true 
entryPoint = "https" 

Hier ist meine docker-compose.yml:

version: '2' 
services: 

    traefik: 
    restart: always 
    image: traefik 
    container_name: traefik 
    ports: 
     - '80:80' 
     - '443:443' 
     - '8080:8080' 
    labels: 
     - 'traefik.enable=true' 
     - 'traefik.docker.network=dockerplatform_default' 
     - 'traefik.port=8080' 
     - 'traefik.frontend.rule=Host:traefik.mydomain.com' 
    volumes: 
     - /var/run/docker.sock:/var/run/docker.sock 
     - ./traefik:/etc/traefik 

    plex: 
    image: linuxserver/plex 
    container_name: plex 
    environment: 
     - VERSION=latest 
     - PUID=1000 
     - PGID=1000 
     - TZ=TZ 
    labels: 
     - 'traefik.enable=true' 
     - 'traefik.docker.network=dockerplatform_default' 
     - 'traefik.port=9001' 
     - 'traefik.frontend.rule=Host:plex.mydomain.com' 
    ports: 
     - '9001:32400' 
    volumes: 
     - 'plex:/config' 
     - 'plex_transcode:/transcode' 
     - '/home/downloader/Downloads:/data/' 

    plexpy: 
    image: linuxserver/plexpy 
    container_name: plexpy 
    environment: 
     - PUID=1000 
     - PGID=1000 
     - TZ=TZ 
    labels: 
     - 'traefik.enable=true' 
     - 'traefik.docker.network=dockerplatform_default' 
     - 'traefik.port=9002' 
     - 'traefik.frontend.rule=Host:plexpy.mydomain.com' 
    ports: 
     - '9002:8181' 
    volumes: 
     - 'plexpy:/config' 

    transmission: 
    image: linuxserver/transmission 
    container_name: transmission 
    environment: 
     - PGID=1000 
     - PUID=1000 
     - TZ=TZ 
    labels: 
     - 'traefik.enable=true' 
     - 'traefik.docker.network=dockerplatform_default' 
     - 'traefik.port=9003' 
     - 'traefik.frontend.rule=Host:bt.mydomain.com' 
    ports: 
     - '9003:9091' 
     - '51413:51413' 
     - '51413:51413/udp' 
    volumes: 
     - 'transmission:/config' 
     - '/home/downloader/Downloads:/downloads' 
     - '/home/downloader/Downloads:/watch' 

volumes: 
    plex: 
    driver: local 
    plex_transcode: 
    driver: local 
    plexpy: 
    driver: local 
    transmission: 
    driver: local 

Vielen Dank für Ihre Hilfe.

Antwort

2

Also habe ich eine Antwort bekommen dank dem tollen Traefik-Slack-Kanal!

Also meine Container sind alle im selben docker Netzwerk einschließlich meiner Traefik Container.

Das Problem ist, dass ich alle meine Container-Port, um von der Host-Maschine zugänglich sein zugeordnet.

Stattdessen sollte ich auf dem Host-Rechner nur abgebildet traefik Ports haben und nur die Häfen von meiner Web-Services-Container ausgesetzt, so dass traefik ihnen innerhalb des Docker Netzwerk hören, wo sie in alle sind.

ändern : - hinzufügen aussetzen - Änderung traefik.port

musste ich einfach tun dies ändert sich in meinem docker-compose.yml:

version: '2' 
services: 

    traefik: 
    restart: always 
    image: traefik 
    container_name: traefik 
    ports: 
     - '80:80' 
     - '443:443' 
     - '8080:8080' 
    labels: 
     - 'traefik.enable=true' 
     - 'traefik.docker.network=dockerplatform_default' 
     - 'traefik.port=8080' 
     - 'traefik.frontend.rule=Host:traefik.mydomain.com' 
    volumes: 
     - /var/run/docker.sock:/var/run/docker.sock 
     - ./traefik:/etc/traefik 

    plex: 
    image: linuxserver/plex 
    container_name: plex 
    environment: 
     - VERSION=latest 
     - PUID=1000 
     - PGID=1000 
     - TZ=TZ 
    labels: 
     - 'traefik.enable=true' 
     - 'traefik.docker.network=dockerplatform_default' 
     - 'traefik.port=32400' 
     - 'traefik.frontend.rule=Host:plex.mydomain.com' 
    #ports: 
    # - '9001:32400' 
    expose: 
     - 32400 
    volumes: 
     - 'plex:/config' 
     - 'plex_transcode:/transcode' 
     - '/home/downloader/Downloads:/data/' 

    plexpy: 
    image: linuxserver/plexpy 
    container_name: plexpy 
    environment: 
     - PUID=1000 
     - PGID=1000 
     - TZ=TZ 
    labels: 
     - 'traefik.enable=true' 
     - 'traefik.docker.network=dockerplatform_default' 
     - 'traefik.port=8181' 
     - 'traefik.frontend.rule=Host:plexpy.mydomain.com' 
    #ports: 
    # - '9002:8181' 
    expose: 
     - 8181 
    volumes: 
     - 'plexpy:/config' 

    transmission: 
    image: linuxserver/transmission 
    container_name: transmission 
    environment: 
     - PGID=1000 
     - PUID=1000 
     - TZ=TZ 
    labels: 
     - 'traefik.enable=true' 
     - 'traefik.docker.network=dockerplatform_default' 
     - 'traefik.port=9091' 
     - 'traefik.frontend.rule=Host:bt.mydomain.com' 
    #ports: 
    # - '9003:9091' 
    # - '51413:51413' 
    # - '51413:51413/udp' 
    expose: 
     - 9091 
     - 51413 
    volumes: 
     - 'transmission:/config' 
     - '/home/downloader/Downloads:/downloads' 
     - '/home/downloader/Downloads:/watch' 

volumes: 
    plex: 
    driver: local 
    plex_transcode: 
    driver: local 
    plexpy: 
    driver: local 
    transmission: 
    driver: local 
+0

Sie sollten es auch als Antwort akzeptieren –