我在虚拟框中创建了两个boot2docker实例:
" boot2docker-VM" {8674bb87-b7ba-4179-9a09-c779611b1d9a}
" boot2docker工作" {53ffd6d6-2fc4-4c4f-b34e-c2f8dd87dd40}
他们使用不同的boot2docker.iso和不同的配置文件。
第一个vm是默认值,因此如果您运行“#docker images'在虚拟机之外,它将默认使用第一个。
但是如何访问第二个boot2docker" boot2docker-work",我知道' boot2docker ssh'有效,但我想在虚拟机外部运行docker命令。
我尝试为第二个vm设置DOCKER_HOST和ca,cert,但是有以下错误: 尝试连接时出错:获取https://192.168.59.110:2376/v1.19/containers/json:拨打tcp 192.168.59.110:2376:i / o timeout
有什么想法吗?
答案 0 :(得分:0)
好的,我找到了解决方案。
当我们创建一个VM时,它将连接到一个带有IP的vboxnet,如果ip是192.168.59.103,它会将192.168.59添加到路由表
192.168.58 link#10 UC 3 0 vboxnet
然后如果我们启动vm,192.168.58.103将被添加到具有正确网关的路由表中:
192.168.58.103 8:0:27:1e:d1:24 UHLWI 0 3120 vboxnet 210
但是如果我们使用ip 192.168.58.104创建另一个vm,那么它将没有正确的网关:
192.168.58.104 link#10 UC 3 0 vboxnet
这使得vm无效。
所以我的解决方案是,使用192.168.59或192.168.60,然后所有问题都消失了。
但有人能解释一下这种路由机制吗?