我希望能够通过它的Ip访问一个docker容器,例如我在docker container inspect foo时可以看到的那个
原因是我在docker容器中使用zookeeper,它正在管理另外两个运行solr的docker容器。我的代码(不是在docker中,我不想在这个阶段想要它)调用zookeeper来获取solr服务器的url,zookeeper将其报告为docker containers ip。然后我的代码会因为从主机调用docker containers ip而失败,因为它应该调用localhost。
那么如何才能允许从主机调用docker container ip来正确路由。 (我正在使用Docker native for Mac)
答案 0 :(得分:0)
我没有使用Docker for Mac,所以我不确定最新版本的Docker for Mac是否仍然基于Docker-machine(基于VirtualBox)。
如果您可以确认您的Docker for Mac基于VirtualBox,那么您可能可以通过vboxnet0
命令获得ifconfig
网络接口的inet IP。该IP应该用作您的主叫IP。
此外,您应该知道Zookeeper容器的端口号。通常,可以在docker run命令中配置容器的公开端口,例如:
docker run -p 5000:5001 -i -t ubuntu /bin/bash
-p
表示容器的暴露端口。