如何通过主机上的Ip访问docker容器

时间:2016-07-24 13:06:18

标签: docker

我希望能够通过它的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)

1 个答案:

答案 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表示容器的暴露端口。