2016-02-01 32 views
2

我想为我的容器在我的docker-compose.yml中指定一个静态IP地址,以便我可以访问它,例如使用主机VM外部的https://<ip-address>ssh [email protected]<ip-address>如何使用Docker Compose设置容器以使用静态IP并可在VM主机之外访问?

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

一个起点docker-compose.yml

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

这可能吗?

我使用VirtualBox的司机,因为我在OS X

回答

0

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

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

请参阅extra_hosts

编辑:

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

+0

我不确定'extra_host'应该是一个容器。 @fredrik it **将可能在Docker(v1.10)的下一版本中发布,该版本最多应在两周内发布。 – Auzias

+0

我的印象是'extra_hosts'只是将东西添加到容器上的'/ etc/hosts'中。这不会使容器在特定的IP地址上可访问。 @ M.Auzias哦,那太棒了。那么我可能需要等待几个星期! – fredrik

1

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

编辑:

PR on GH

+0

这是否真的可以在docker-compose.yml中定义IP地址?看起来这只会在使用'docker'命令(使用Docker 1.10)而不使用'docker-compose'命令时才起作用? – fredrik

+0

我不确定,但我想是的。 – Auzias

+0

我不确定,但我想是的。所有的细节可以在这里找到:https://github.com/docker/docker/pull/19001#issuecomment-179388268 – Auzias

0

在运行容器时,您可以使用参数--ip指定容器的IP地址,因此容器的IP总是相同的。之后,您可以SSH到您的主机虚拟机,然后“附加”到容器。

否则,我不知道......也许尝试与--net=host 运行容器从https://docs.docker.com/engine/userguide/networking/dockernetworks/

主机网络增加了一个容器中主机网络堆栈。你会在 找到容器内的网络配置与 相同的主机。

相关问题