这是一个已知的问题 localhost 在窗户上。您需要使用容器IP地址。您可以通过运行该命令找到它
localhost
docker inspect --format '{{ .NetworkSettings.Networks.nat.IPAddress }}' <container>
欲了解更多信息: https://blog.sixeyed.com/published-ports-on-windows-containers-dont-do-loopback/
好的,最后我发现了原因。因为在Windows 7上你必须在运行linux系统的虚拟盒中运行docker容器,docker容器将虚拟盒系统视为其主机,而不是原始的Windows 7机器。因此,端口映射guest-to-host将docker容器的端口2181映射到虚拟盒中的linux系统的2181端口,而不映射到“真正的”Windows 7主机的2181端口。因此,为了连接到zookeeper,我不得不使用检索虚拟盒机的IP docker-machine ls 然后连接到该IP上的端口2181。
docker-machine ls