如何使用Docker Compose设置容器以使用静态IP并可在VM主机外部访问?

时间:2016-02-01 13:21:44

标签: docker containers docker-compose

我想在我的docker-compose.yml中为我的容器指定静态IP地址,以便我可以访问它,例如从主机VM外部使用https://<ip-address>ssh user@<ip-address>

也就是说,使我公司网络上的其他计算机可以直接在特定的静态IP地址上访问Docker容器。我不希望映射特定的端口,我希望能够直接访问容器。

docker-compose.yml的起点:

master:
  image: centos:7
  container_name: master
  hostname: master

这可能吗?

我正在使用Virtualbox驱动程序,因为我在OS X上。

3 个答案:

答案 0 :(得分:1)

到目前为止,这是不可能的,它将出现在Docker v 1.10中(应该在几周内发布)。

修改

请参阅PR on GH

答案 1 :(得分:0)

我相信额外的主机条目是一个解决方案。

extra_hosts:
 - "somehost:162.242.195.82"
 - "otherhost:50.31.209.229"

请参阅extra_hosts

修改:

正如M. Auzias在评论中指出的那样,我误解了这个问题。答案不正确。

答案 2 :(得分:0)

您可以在运行时使用--ip参数指定容器的IP地址,因此对于容器,IP始终是相同的。之后你可以ssh到你的主机虚拟机,然后&#34;附加&#34;到容器。

否则,我不确定......也许尝试使用--net=host运行容器 来自https://docs.docker.com/engine/userguide/networking/dockernetworks/

  

主机网络在主机网络堆栈上添加容器。你会   找到容器内的网络配置是相同的   主持人。