【问题标题】:Docker not able to connect via host IP or localhostDocker 无法通过主机 IP 或 localhost 连接
【发布时间】:2017-06-01 23:44:12
【问题描述】:

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

请帮忙。

【问题讨论】:

  • 您使用的是哪个操作系统?
  • Docker 版本太老了,有没有考虑升级?

标签: docker docker-compose dockerfile


【解决方案1】:

我遇到了同样的问题,并且能够通过指定容器内的服务器使用的主机来解决它。在这里查看我的答案:Access Docker forwarded port on Mac

【讨论】:

    【解决方案2】:

    正如我所见,它在使用容器 ip 和端口的容器内工作正常,指向

    码头工人撰写

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

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

    -p 端口:端口

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

    【讨论】:

      猜你喜欢
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多