与docker后端Traefik导致糟糕的度假

我build立了一个debian服务器,我安装了docker和docker-compose。

我在我的sudo用户的家中创build了一个具有以下层级的文件夹:

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

我做一个docker-compose up -d一个-D所有东西都开始我可以达到traefik.mydomain.com有其他子域一样工作SSL证书。 但是,如果我去任何我的子域到达我dockerized的Web服务,我得到一个坏的网关消息在我的浏览器。 如果我去我的服务器IP地址,并把正确的端口,我看到我的web服务工作完美。

所以我认为我configurationdocker / traefik关系时犯了一个错误,但是我找不到在哪里。

这是我的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 = "my-email@mail.com" storageFile = "/etc/traefik/acme.json" onDemand = false onHostRule = true entryPoint = "https" 

这是我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 

感谢您的帮助。

所以我设法得到了一个回答,感谢这个了不起的traefik松弛频道!

所以我的容器都在同一个dockernetworking,包括我的traefik容器。

问题是我映射了我的所有容器端口可以从主机访问。

相反,我应该只映射traefik端口到主机,并暴露我的web服务容器的端口,以便traefik可以在他们所在的dockernetworking内收听它们。

更改: – 添加公开 – 更改 traefik.port

我只需要在我的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