Docker无法通过主机IP或localhost进行连接

时间:2017-01-17 19:13:08

标签: docker docker-compose dockerfile

我创建了一个在容器内运行kafka的docker镜像。我还在docker-compose.yml中完成了端口映射,用于映射主机端口和容器端口。

在调出docker镜像后(使用docker-compose),我可以看到docker镜像已启动并正在运行,并且容器也已启动,如下所示:

e39cd6452307        dockerregistry:5000/confluent:latest   "/run.sh"              10 hours ago        Up 10 hours         0.0.0.0:8081->8081/tcp, 0.0.0.0:2108->2181/tcp, 0.0.0.0:9920->9092/tcp   confluent

'ps-ef | grep docker'也为我提供了以下结果:

root      6594  5257  0 Jan17 ?        00:00:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9920 -container-ip 172.17.0.1 -container-port 9092
root      6605  5257  0 Jan17 ?        00:00:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8081 -container-ip 172.17.0.1 -container-port 8081
root      6617  5257  0 Jan17 ?        00:04:22 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 2108 -container-ip 172.17.0.1 -container-port 2181

奇怪的事情从这里开始:

如果我尝试使用容器IP和端口(IP:172.17.0.1,端口:2181)连接到主机内容器内运行的服务,我的连接成功,我得到了正确的响应。

但是,如果我尝试使用映射的主机IP和端口(使用10.xx.xx.xx:2108)从主机连接到服务,则会收到连接被拒绝消息。 (xx仅用于屏蔽我的机器ip)

此外,'telnet 10.xx.xx.xx 2108'工作正常。

在这种情况下可能出现什么问题。我有docker版本1.7.1和docker-compose版本1.5.0

请帮忙。

2 个答案:

答案 0 :(得分:1)

我可以看到它使用容器ip和端口在容器内工作正常,指向

  

搬运工-撰写

文件,可能是端口映射没有正确完成。

请上传您的docker-compose,因为唯一的问题是端口,因为它没有正确曝光。 如果

,您还可以检查 docker run 命令
  

-p port:port

实际上是您要公开或不公开的端口。

答案 1 :(得分:0)

我遇到了同样的问题,并且能够通过指定容器中的服务器使用的主机来修复它。请在此处查看我的回答:Access Docker forwarded port on Mac