web-dev-qa-db-ja.com

traefikがDocker内から特定の非Dockerポートにリダイレクトする方法

まず、この質問をするのに適切な用語を使用していないとすみませんが、適切な用語を使用していません。

Dockerコンテナーでtraefikを実行しており、PathPrefixオプションを使用していくつかのサービスを提供しています。たとえば、www.myserver.com/wordpressはwordpressを実行するDockerコンテナーにリダイレクトします。

しかし、どうすればDockerコンテナの外にリダイレクトできますか?具体的には、www.myserver.comを自分のマシンのポート8080にリダイレクトして、そこで(Dockerコンテナーではなく)ホストOSで実行しているサービスを提供するにはどうすればよいですか?

これは私の traefik.toml

logLevel = "DEBUG"
defaultEntryPoints = ["http", "https"]

[entryPoints]
    [entryPoints.http]
        address = ":80"
        compress = false
        [entryPoints.http.redirect]
            entryPoint = "https"
    [entryPoints.https]
        address = ":443"
        [entryPoints.https.tls]

[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
#onDemand = true
[[acme.domains]]
    main = "www.myserver.com"

[web]
address = ":8888"

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "www.myserver.com"
watch = true
exposedbydefault = false

と私 docker-compose.yml traefikコンテナ:

version: "2"

services:
  traefik:
    image: traefik
    network_mode: "Host"
    ports:
      - "80:80"
      - "443:443"
      - "8888:8888"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ${SERVER_DIR}/AppData/traefik:/etc/traefik/
      - ${PWD}/acme.json:/acme.json
      - ${PWD}/traefik.toml:/etc/traefik/traefik.toml
      - ${PWD}/servers.toml:/etc/traefik/servers.toml
    restart: never
12
jbssm

私はいじり回し、答えを見つけました。

traefik.toml 追加:

################################################################
# File configuration backend
################################################################
# Enable file configuration backend
# Optional
[file]
        filename = "servers.toml"

# Enable watch file changes
        watch = true

docker-compose.yml 変更 volumes:から:

volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  - ${SERVER_DIR}/AppData/traefik:/etc/traefik/
  - ${PWD}/acme.json:/acme.json
  - ${PWD}/traefik.toml:/etc/traefik/traefik.toml
  - ${PWD}/servers.toml:/servers.toml

ファイルを追加servers.toml

loglevel = "ERROR"

[backends]
[backends.nasweb]
        [backends.nasweb.servers.nasweb]
            url = "http://192.168.1.11:8080"

[frontends]
        [frontends.domain]
                backend = "nasweb"
        [frontends.domain.routes.domain]
                rule = "Host:www.myserver.com"
10
jbssm