我似乎无法弄清楚如何在使用boot2docker时启用远程API。我正在尝试使用dockerode,如下所示:
Docker = require('dockerode') docker = new Docker(socketPath: "/var/run/docker.sock") container = docker.getContainer('<my_container_id>') container.inspect (err, data) -> debug data
尽管存在ID为“”的容器,但数据为null。我怀疑这是因为OS X主机上没有/var/run/docker.sock,因此我需要使用类似以下内容:
var docker2 = new Docker({host: 'http://192.168.1.10', port: 3000});
…但是无法弄清楚如何在VirtualBox VM中配置boot2docker或docker以启用通过http或tcp的访问。
由Boot2Docker配置的Docker默认支持 从主机OSX机器 在端口2375上进行远程访问;这是告诉您要做的事情export DOCKER_HOST=tcp://192.168.59.103:2375
export DOCKER_HOST=tcp://192.168.59.103:2375
如果要从另一台计算机访问端口,则需要配置VirtualBox网络以将流量路由到该端口。这可以通过使用以下命令进行端口转发来完成:
VBoxManage modifyvm "boot2docker-vm" --natpf1 "guestssh,tcp,,2375,,2375"
然后,new Docker代码中要使用的地址就是Mac的IP地址。
new Docker
您也可以在VirtualBox GUI中的boot2docker-vm / settings / network / advanced / port forward下配置它。
请参阅VirtualBox docs。
注意,如所描述这里,这现在允许任何人以IP访问您的计算机来控制你的码头工人的安装,这可能是一个安全问题。