使用traefik和docker的反向代理安装程序无法解析web服务器地址
我正在尝试使用docker设置反向代理。这是我的设置(我正在尝试使用户): 我用这个来启动trafik:使用traefik和docker的反向代理安装程序无法解析web服务器地址,docker,traefik,Docker,Traefik,我正在尝试使用docker设置反向代理。这是我的设置(我正在尝试使用户): 我用这个来启动trafik: docker run --name traefik \ -p 80:80 \ -v /var/run/docker.sock:/var/run/docker.sock \ --network traefik \ traefik:1.2.3-alpine \ --entryPoints='Name:http Address::80' \ --docker \ --docker.watch
docker run --name traefik \
-p 80:80 \
-v /var/run/docker.sock:/var/run/docker.sock \
--network traefik \
traefik:1.2.3-alpine \
--entryPoints='Name:http Address::80' \
--docker \
--docker.watch
这是我的网站的开始:
docker run --name node_js \
--network traefik \
--label 'traefik.frontend.rule=Host:www.node-app.me' \
--label 'traefik.frontend.entryPoints=http' \
--label 'traefik.port=80' \
--label 'traefik.protocol=http' cool-app
在我开始两者之后,我的docker ps是
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d00e0cf117fa cool-app "/bin/sh -c 'ng serve" 33 minutes ago Up 33 minutes 80/tcp node_js
5a6bd0b1c3c7 traefik:1.2.3-alpine "/entrypoint.sh '--en" 35 minutes ago Up 35 minutes 0.0.0.0:80->80/tcp traefik
docker inspect网络部分是酷应用程序
:
"NetworkSettings": {
"Bridge": "",
"SandboxID": "7a549fc826b2c1d8d25917a374e519c90a93a91e863ffe825a69e41b36347875",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"80/tcp": null
},
"SandboxKey": "/var/run/docker/netns/7a549fc826b2",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"traefik": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"d00e0cf117fa"
],
"NetworkID": "f8894d7c7cfdda1f3c4de805e0a6407aa0a3a5560e6c8c1c9505c12445027241",
"EndpointID": "25b27deb775e16f26807845dead64a31e5d120ad9162523943d9ac8625283f6b",
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:12:00:03"
}
}
}
}
docker inspect网络部分是traefik
:
"NetworkSettings": {
"Bridge": "",
"SandboxID": "9b20b8465eb4cf3cbb85b082220ae90f76e8f6ba220d4c3b5f2b06c7149760c4",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"80/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "80"
}
]
},
"SandboxKey": "/var/run/docker/netns/9b20b8465eb4",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"traefik": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"5a6bd0b1c3c7"
],
"NetworkID": "f8894d7c7cfdda1f3c4de805e0a6407aa0a3a5560e6c8c1c9505c12445027241",
"EndpointID": "4a39ccb693e1fdcdbf99937469029768f0542c1df71059f43bbf500c1ebc5b1d",
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:12:00:02"
}
}
}
}
似乎web应用程序启动正确,但当我尝试访问时,我得到:
curl: (6) Could not resolve host: www.node-app.me
你能帮我解决这个问题吗?这是因为这个域不存在,而且你没有提供任何本地分辨率让curl知道去哪里 要使其快速工作,您可以修改主机文件(/etc/hosts):
另一种常见的方法是在不修改主机文件的情况下使用,但奇怪的是,当我试图在浏览器或邮递员中打开相同的URL时,在不向主机文件添加任何更改的情况下,一切正常。同时尝试
curl
失败,因为无法解决主机
错误。@dodbrian在我的MacOS上,这是因为Chrome会自动将任何*。localhost
域解析为127.0.0.1
,但是curl和Safari都不会这样做。因此,据我所知,您必须触摸/etc/hosts
,使用正确的主机头向localhost发送请求(例如curl-H“host:example.localhost”localhost
),或者使用类似http://localhost/example
并在traefik中配置正确的服务。
curl: (6) Could not resolve host: www.node-app.me
127.0.0.1 localhost.localdomain localhost www.node-app.me