boot2docker和docker-machine IP地址的稳定性/可靠性如何?

时间:2015-07-16 09:28:35

标签: docker boot2docker docker-machine

我知道我可以使用boot2docker ipdocker-machine ip来获取boot2docker / docker-machine VM的已分配IP地址。

根据我的理解,默认IP地址是:

  • boot2docker:192.168.59.103
  • docker-machine:192.168.99.100

以下是我的相关问题:

  • 我是否可以假设通常会使用这些地址,除非与同一网络/主机上的其他设备/ VM发生冲突?
  • 在同一台计算机上停止/启动boot2dockerdocker-machine时,我是否可以依赖VM始终使用相同的IP地址?

我问,因为我想将boot2docker shellinitdocker-machine env dev创建的环境变量存储在我用户的个人资料中,所以我不必运行每次启动/停止VM时都会执行这些命令。

3 个答案:

答案 0 :(得分:1)

我一直在使用boot2docker大约一年。我已经将boot2docker ip设置为其他几次,并且无法确切地告诉您原因。如果我不得不猜测,我会说这是因为boot2docker重新启动了,但是之前的一些实例并没有很好地死掉并且还在占用ip,所以它转到了.104。

无论如何,要始终保持安全,我每次使用时都会获得当前的boot2docker ip:

export DOCKER_HOST=`boot2docker ip 2>/dev/null`

答案 1 :(得分:1)

你绝对不能依赖。我一直在玩本地的docker-machine与virtualbox驱动程序,我注意到的是docker-machine分配的ip地址取决于机器启动的顺序。第一台启动的机器获得.100(即使它在119之前)。

答案 2 :(得分:0)

对我来说,docker-machine可靠地只使用.100 IP地址。但是,我只在该网络子网上一次启动一个docker-machine VM。

一个想法是在不同的主机网络子网上运行每个VM,因此它始终是网络上唯一具有IP的实例,并且始终为.100

docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "192.168.59.1/24" default
docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "192.168.60.1/24" default2

另一个想法是在虚拟机NAT适配器上设置端口转发,这样您就可以始终从主机的IP获取它。

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"

https://www.virtualbox.org/manual/ch06.html#natforward