Docker:如何访问我的服务器;容器中的公共IP?
我在linux服务器上以docker容器的形式运行不同的应用程序。我可以使用SSL访问docker容器。我使用的反向代理是Docker:如何访问我的服务器;容器中的公共IP?,docker,networking,docker-compose,traefik,Docker,Networking,Docker Compose,Traefik,我在linux服务器上以docker容器的形式运行不同的应用程序。我可以使用SSL访问docker容器。我使用的反向代理是traefik配置为代理子目录而不是子域 这些是我的容器: 应用程序A-可通过https://abc.xyz/a 应用程序B-可通过https://abc.xyz/b 从我的浏览器访问这两个应用程序时,它们都已启动并正常运行 现在我需要将应用程序B嵌入应用程序A。我知道我可以只使用容器的内部IP(因为它们在同一个网络上),但是,嵌入式应用程序必须能够被应用程序A以及本地浏览器
traefik
配置为代理子目录而不是子域
这些是我的容器:
应用程序A-可通过https://abc.xyz/a
应用程序B-可通过https://abc.xyz/b
从我的浏览器访问这两个应用程序时,它们都已启动并正常运行
现在我需要将应用程序B嵌入应用程序A。我知道我可以只使用容器的内部IP(因为它们在同一个网络上),但是,嵌入式应用程序必须能够被应用程序A以及本地浏览器访问-因此我需要使用面向公众的IP/URL
现在的问题是我根本无法访问https://abc.xyz/b
来自应用程序A。以下所有命令都在应用程序Adocker容器内执行
Ping正在工作:
$ ping abc.xyz
64 bytes from 150.150.150.150: seq=0 ttl=64 time=0.204 ms
所以DNS正在工作
但是,wget
显示:
$ wget https://abc.xyz/b
Connecting to abc.xyz (150.150.150.150)
(Nothing happens)
我根本不知道问题出在哪里。是在
traefik
中,还是这是docker的局限性?经过进一步的研究,我发现它与docker
或traefik
完全无关。主机linux启用了防火墙(ufw
),该防火墙阻止来自docker容器的请求,因为它没有正确配置
我现在允许从容器中访问,它可以工作。经过进一步研究,我发现它与
docker
或traefik
完全无关。主机linux启用了防火墙(ufw
),该防火墙阻止来自docker容器的请求,因为它没有正确配置
我现在允许从容器中访问,它可以工作了