由于不建议使用boot2docker
,因此我已切换到docker-machine
,但我不知道如何从docker-machine
打开端口。在boot2docker
中,我可以这样:
boot2docker ssh -L 27017:localhost:27017
只要打开SSH连接,这会将端口27017从VirtualBox转发到本地主机27017。请注意,我不是在寻找一种在VirtualBox中永久打开端口的方法。如何使用
docker-machine
实现呢? 最佳答案
您仍然可以从docker机器使用的VirtualBox中访问VBoxmanage.exe命令:
VBoxManage controlvm "boot2docker-vm" natpf1 "tcp-port27017,tcp,,27017,,27017";
docker-machine info
获取您的虚拟机名称。 modifyvm
。 请参阅this answer中的实际示例。
这是当前的解决方法,有待将参数传递给
docker-machine ssh
:请参阅issue 691。另一个解决方法是不转发端口,而是直接使用VM的IP:
$(docker-machine ip default)
作为commented的sdc:
VBoxManage showvminfo boot2docker-vm | grep "NIC.* Rule"