Docker无法通过主机IP或本地主机连接

我创build了一个在容器中运行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

请帮忙。

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

泊坞窗,撰写

文件,可能是端口映射不正确。

你能否上传你的docker-compose,因为唯一的问题是端口,因为它没有正确的暴露。 你也可以检查你的docker运行命令,如果

-p端口:端口

实际上是你想要暴露的端口。

我有同样的问题,并能够通过指定容器中的服务器使用的主机来解决它。 在这里看到我的答案: 在Mac上访问Docker转发的端口