【发布时间】:2014-11-04 04:27:34
【问题描述】:
如何为 boot2docker docker 容器建立私有网络?
例如,如果我有一个 webapp,我可以在 Vagrantfile 中执行以下操作
myapp1.vm.network "private_network", ip: "1.2.3.4"
myapp2.vm.network "private_network", ip: "1.2.3.5"
myapp3.vm.network "private_network", ip: "1.2.3.6"
然后我可以使用我的浏览器访问我的网络应用程序
http://1.2.3.4
http://1.2.3.5
http://1.2.3.6
如何在 docker 中轻松实现相同的结果?
我也看了How to expose docker container's ip and port to outside docker host without port mapping?
但是在我的boot2docker1.3中,却说接口eth0:1不存在
我看了https://docs.docker.com/articles/networking
本教程不适用于 mac 中的 boot2docker。
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
你想用这个网络做什么?您希望它只对一个容器私有吗?您希望多个容器能够通过它进行通信吗?
-
谢谢,多个容器可以相互通信,我可以将它们链接在一起 --link,我希望每个容器都有自己的 ip,所以我可以从外部访问它们(作为 Web 服务)
-
默认情况下,它们都会获得一个唯一的 ip,但它会由 Docker 随机分配,流量不会从机外路由到它。您可以使用github.com/zettio/weave 通过“附加”和“公开”功能解决这些问题。 (注:我为 Zettio 工作)
-
但是 docker 容器 ip 无法从我的主机(mac 浏览器)访问,我可以做一些端口映射,将其映射到主机,但这不是我想要的,我想要每个容器(如webapp) 拥有一个我可以通过浏览器直接访问的 ip,而不是使用映射到 boot2docker 主机 ip
-
哦,你是在 Mac 上使用 Boot2Docker 吗?这让事情变得更加复杂,因为有两个主机 - Mac 和 VirtualBox VM。
标签: vagrant docker vagrantfile boot2docker