我参考官方示例在 Docker 中通过 traefik(与 nginx 类似)以反向代理的方式负载了一个站点:
whoami:
image: containous/whoami
container_name: whoami
restart: unless-stopped
labels:
- "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
在我的机器 A 上,可以通过 whoami.docker.localhost
的方式访问此站点。现在,如何让局域网内其他机器 B 通过此域名进行访问?
我已经尝试过在其他的机器 B 上配置 hosts 的方式进行访问,结果是无法访问。
# 假设我的 IP 是 192.168.1.2
192.168.1.2 docker.localhost
192.168.1.2 whoami.docker.localhost
补充说明:
- B 机器可以通过
ip:port
或者是hostname:port
访问 A 机器上部署的 howareyou 服务。 - B 机器在配置了 hosts 后执行
ping
命令确实请求到了 A 机器上,在移除 hosts 配置后ping
失败。 - 由于 whoami 服务没有使用
ports
配置,因此没有对外暴露端口。我希望是通过 traefik 服务来进行反向代理实现外部访问的。
先ping一下whoami.docker.localhost 看看是不是机器A的ip,且访问有无防火墙问题