boot2docker和docker-machine IP地址的稳定性/可靠性如何?
我知道我可以使用boot2docker ip
或boot2docker ip
docker-machine ip
来获取boot2docker / docker-machine虚拟机的分配IP地址。
从我所了解的默认IP地址是:
- boot2docker:192.168.59.103
- docker机:192.168.99.100
这是我的问题:
- 我能否假设这些地址一般都会被使用,除非在同一个networking/主机上与其他设备/虚拟机有冲突?
- 在同一台
docker-machine
上停止/启动boot2docker
或boot2docker
docker-machine
时,我可以依赖于VM始终使用相同的IP地址吗?
我在问,因为我想将由boot2docker shellinit
或boot2docker shellinit
docker-machine env dev
创build的环境variables存储在我的用户configuration文件中,所以我不必在每次启动/停止VM时都运行这些命令。
你绝对不能依靠。 我一直在使用virtualbox驱动程序在本地的docker-machine上玩,我注意到docker-machine分配的IP地址取决于机器启动的顺序。 第一台启动的机器获得.100(即使在119之前)。
我一直在使用boot2docker大约一年。 我已经把boot2docker ip设置为别的东西了几次,不能确切地告诉你为什么。 如果我不得不猜测,我会说这是因为boot2docker重新启动,但以前的一些实例并没有很好地死亡,并仍然占用了IP,所以它改为.104。
无论如何,为了保持安全,我每次开始使用新的东西时,都会得到当前的boot2docker ip:
export DOCKER_HOST=`boot2docker ip 2>/dev/null`
对我来说,docker机器可靠地只使用.100的IP地址。 但是,我只能在该networking子网上一次启动一台docker-machine虚拟机。
一个想法是在不同主机的networking子网上运行每个虚拟机,所以它将永远是networking上唯一具有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地址获得IP地址。
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"