我有2个容器,第一个在端口80上运行,另一个在端口8022上运行,我尝试从端口8022上运行的容器向端口80上的容器发出卷曲请求,并且得到空响应。
对于端口8022上的容器,我运行以下命令:
docker run -d -it --privileged -p 0.0.0.0:8022:80 -v ~/path/to/my/app:/var/www/app --network=bridge --memory 1073741824 my/app:latest
Run Code Online (Sandbox Code Playgroud)
如果向其他主机形式示例Google发出卷曲请求,我会正确获得响应。
感谢帮助
更新 好了,我可以解决这个问题,在两个容器中创建一个网络并使用该网络,然后将80端口容器的IP添加到8022容器的主机文件中。
感谢@ zero298的帮助!
您的容器未侦听端口 8022,您已将端口 8022 转发到容器的端口 80。从容器到容器,您连接到容器端口,而不是主机上已发布的端口。因此,从curl命令中删除8022以转到默认端口80。
对于容器到容器网络,您需要容器位于公共 docker 网络上。对于 docker 的内部 DNS,您需要位于名为“bridge”的默认桥接网络之外的 docker 网络上(该“bridge”网络具有一些未启用 DNS 的历史属性)。docker network create $network_name然后您可以使用--net $network_name实现此选项的选项来运行容器。
您不需要修改主机文件或使用容器到容器网络的已弃用的“链接”功能。
| 归档时间: |
|
| 查看次数: |
3413 次 |
| 最近记录: |