我创建了一个在容器内运行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
请帮忙。
答案 0 :(得分:1)
我可以看到它使用容器ip和端口在容器内工作正常,指向
搬运工-撰写
文件,可能是端口映射没有正确完成。
请上传您的docker-compose,因为唯一的问题是端口,因为它没有正确曝光。 如果
,您还可以检查 docker run 命令-p port:port
实际上是您要公开或不公开的端口。
答案 1 :(得分:0)
我遇到了同样的问题,并且能够通过指定容器中的服务器使用的主机来修复它。请在此处查看我的回答:Access Docker forwarded port on Mac