![](/img/trans.png)
[英]Traefik:v2 Windows Container Failed to retrieve information of the docker client and server host
[英]traefik proxy for docker container running in host network
我在 docker 容器中運行 traefik 作為代理
我在 Windows 10 中使用 DockerToolBox
traefik 代理能夠識別在 127.0.0.1 中運行的服務應用程序,但該服務應用程序實際上在 docker host = 192.168.99.x ip 中運行
version: '3'
services:
reverse_proxy:
image: traefik
command: --api --docker
ports:
- "81:80"
- "8081:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- backend
whoami:
image: containous/whoami
labels:
- "traefik.frontend.rule=Host:whoami.default"
- "traefik.enable=true"
- "traefik.port=80"
network_mode: host
networks:
backend:
driver: bridge
在 Traefik 儀表板中http://192.168.99.100:8081
它為 whoami 服務顯示http://127.0.0.1:80
而不是http://192.168.99.100:80
任何幫助,將不勝感激。
我想要network_mode: host選擇192.168.99.100而不是127.0.0.1
正如traefik官方文檔所說,在解析服務IP時,首先它
嘗試查找
host.docker.internal
第二個
如果查找不成功,則回退到
127.0.0.1
這意味着我們可以在 traefik 容器中添加一個主機,使用--add-host {docker0_IP}
(它是網橋的 IP,您可以輕松地使用docker inspect {NAME_OF_TRAEFIK}
並找到網關的 IP(對我來說,它是172.18.0.1
). 如果您使用 docker-compose, 您可以使用以下行添加到您的 traefik 定義中:
extra_hosts:
- host.docker.internal:{docker0_IP}
另外,我發現可以使用 IP my eth0 IP,這意味着您的 LAN 的 IP(對我來說,它是192.168.0.20
)。
然后,重新創建 traefik,一切都像雛菊一樣工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.