0

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

据我了解,默认 IP 地址是:

  • boot2docker:192.168.59.103
  • 码头机器:192.168.99.100

以下是我与此相关的问题:

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

我之所以问,是因为我想存储由我的用户配置文件创建boot2docker shellinitdocker-machine env dev在我的用户配置文件中创建的环境变量,所以我不必每次启动/停止 VM 时都运行这些命令。

4

3 回答 3

1

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

无论如何,为了始终安全起见,每次我开始使用以下新内容时,我都会获取当前的 boot2docker ip:

export DOCKER_HOST=`boot2docker ip 2>/dev/null`
于 2015-07-16T20:51:48.010 回答
1

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

于 2015-07-20T08:32:03.660 回答
0

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

一个想法是在不同的仅主机网络子网上运行每个 VM,因此它始终是网络上唯一具有 IP 的实例,并且始终为 0.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

于 2016-01-23T18:45:26.323 回答