をダイナミックIPアドレスが時間の経過と共に変化する可能性のあるDockerコンテナの前でリバースプロキシとして使用する場合、traefikにはdocker backend。dockerバックエンドを使用したtraefikリバースプロキシ - traefikのconfigファイルのフロントエンドルールをコンテナラベルなしで設定する
最初に、特別な設定ファイルなしでdocker
モードでtraefikを開始し、ホストネットワークモードを有効にします(オプションで、traefikはホスト上のすべてのDockerネットワークを見ることができます)。必要に応じて)、Docker unixソケットをマウントして、traefikがコンテナの開始と停止を聞くことができるようにします。
docker run --rm -p 80:80 --net=host --name traefik-reverse-proxy -v /dev/null/traefik.toml:/etc/traefik/traefik.toml -v /var/run/docker.sock:/var/run/docker.sock traefik --docker --loglevel debug
、別のコンテナを起動し、少なくともlabels次のように設定します。
- traefik.backend: "いくつかの-バックエンド名"
- traefik.frontend.rule:「ホスト:localhostを;方法:「GET(またはものは何でもあなたのルールがある)
- traefik.port:80(またはお使いのコンテナが内部的に公開するものは何でもポート)
例:
docker run --rm --name nginx -l traefik.backend="some-backend-name" -l traefik.frontend.rule="Host: localhost; Method: GET" -l traefik.port="80 nginx
その後、curl localhost
をやって、一つは、それが要求を取り、nginxのコンテナにルーティングされtraefik
コンテナのログに見ることができます。
これまでのところ、アプリケーション自体の中で逆プロキシ転送ルール(例えば、転送ホスト:some.host.nameをコンテナxxxに設定する必要があるという事実は気に入らない私のドッカーがコンテナ、ラベルなどを設定するファイルは通常配置されています)。むしろ、これをアプリケーションから切り離して、代わりにtraefikの設定の一部として設定したいと思います。
これはどういうことですか?私が試したことは例のnginxのコンテナからtraefik.frontend.rule
ラベルを除外し、代わりにtraefik
ために以下の構成ファイルをマウントしている:
[frontends]
[frontends.frontend1]
backend = "some-backend-name"
[frontends.frontend1.routes.test_1]
rule = "Host: localhost; Method: GET"
traefik
ための起動コマンドは、このようになった:
docker run --rm -p 80:80 --net=host --name traefik-reverse-proxy -v $PWD/traefik.toml:/etc/traefik/traefik.toml -v /var/run/docker.sock:/var/run/docker.sock traefik --docker --loglevel debug
はしかし、これはありませんnginxコンテナからのバックエンドラベルを持つ設定ファイルからフロントエンドルールを添付していないようです。 curl localhost
は404/Not found
エラーを返すようになりました。
入力いただきありがとうございます。しかし、これを試みると、結果はまったく同じです。この事例を見つけた場合は、教えてください。 – Dirk