问题:网络没有路由到主机。例如:
docker run -tip 80:8080 httpd不会导致apache在本地主机上做出响应:主机上的8080,或者docker.local:8080上的任何东西。如果我试图从内部连接,容器可以正常工作:
docker run -ti debian
curl 172.17.0.2
<html><body><h1>It works!</h1></body></html>似乎在码头那边,一切都很好。在docker ps上得到:... 80/tcp, 0.0.0.0:80->8080/tcp ...
环境:新,清洁操作系统安装-OSXSiera10.12.2,Docker.app版本1.13.0稳定(加1.13.0 )。测试版和1.12.0版的测试结果相同)。
假设:在Docker和OS之间有一些突破。我猜这是Hyperkit (对我来说就像一个黑匣子)。在这里,构建脚本可能打破了一些设置:http://bigchaindb-examples.readthedocs.io/en/latest/install.html#the-docker-way是以docker-machine为中心的,我可能低估了这一点。有趣的是,这也是一个新的安装:这个构建脚本是我在上面做的第一件事--我不知道网络以前是否有效。
问题:如何诊断这些东西。我希望能够找到确切的交通丢失的地方,并相应地修复它。
发布于 2017-01-25 10:48:13
命令行将端口反转:
docker run -tip 8080:80 httpd首先是主机端口,然后是容器端口,然后是要绑定的可选接口。您还可以看到,在docker ps输出中,主机上的端口80被映射到容器内的端口8080。
另一个问题是容器内部的服务需要侦听所有容器接口(0.0.0.0),而不是容器的本地主机接口,否则代理无法将流量转发给它。但是,官方图像中的默认设置不会出现此问题,而curl命令显示的是不适用于您的设置。
https://stackoverflow.com/questions/41848875
复制相似问题