一尘不染

在Mac OS X(boot2docker)上的Docker中启用远程API

docker

我似乎无法弄清楚如何在使用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的访问。


阅读 338

收藏
2020-06-17

共1个答案

一尘不染

由Boot2Docker配置的Docker默认支持 从主机OSX机器 在端口2375上进行远程访问;这是告诉您要做的事情export DOCKER_HOST=tcp://192.168.59.103:2375

如果要从另一台计算机访问端口,则需要配置VirtualBox网络以将流量路由到该端口。这可以通过使用以下命令进行端口转发来完成:

VBoxManage modifyvm "boot2docker-vm" --natpf1 "guestssh,tcp,,2375,,2375"

然后,new Docker代码中要使用的地址就是Mac的IP地址。

您也可以在VirtualBox GUI中的boot2docker-vm / settings / network / advanced / port
forward下配置它。

请参阅VirtualBox
docs

注意,如所描述这里,这现在允许任何人以IP访问您的计算机来控制你的码头工人的安装,这可能是一个安全问题。

2020-06-17