当前位置: 首页 > 面试题库 >

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

皇甫乐
2023-03-14
问题内容

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

如果要从另一台计算机访问端口,则需要配置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访问您的计算机来控制你的码头工人的安装,这可能是一个安全问题。



 类似资料:
  • 问题内容: 我想在Mac OS X上的docker中运行Django应用。我已使用该教程安装了docker 。 我参考docker -library中的Django文档来构建映像https://github.com/docker- library/docs/tree/master/django ,我将Dockerfile添加到新的Django项目文件夹中 问题是我构建了映像并成功运行了容器,但是每

  • 本文向大家介绍Mac OSX系统 Docker启用Docker远程API功能,包括了Mac OSX系统 Docker启用Docker远程API功能的使用技巧和注意事项,需要的朋友参考一下 在Mac OSX系统的Docker机上启用Docker远程API功能 Docker守护进程提供了一套远程REST API,具体可以参考文档: https://docs.docker.com/engine/refe

  • 机器A和B之间的通信工作良好。我可以运行像或这样的命令,它会给出预期的结果: 我听说过,但还没有尝试过,但据我所知,这并不能解决我的问题。 有什么方法可以直接使用来实现这一点。解决办法可能是使用连接到远程主机,并直接从远程主机使用客户机,但我希望尽可能避免这种解决方案。 在上运行,而不是在本地计算机上运行。

  • 问题内容: 简而言之 :如何在Mac OS X上为Docker设置HTTP / HTTPS代理? 详细说明 : 我在代理后面的Mac OS X上运行Docker(1.12)。我按照安装说明进行操作,并安装了boot2docker。如果我从网络内部Docker注册表中提取信息,则此方法工作正常。 但是,从docker.io拉出时出现以下错误: 注1 :,并在环境中可用(运行显示全部三个)。 注2 :

  • 问题内容: 我在Mac上运行boot2docker。OSX版本10.9.3 boot2docker版本4.3.12 Docker版本0.12.0 boot2docker映像是一个使用virtualbox的无聊的盒子。我尝试了许多无用的盒子(例如stigkj / boot2docker)。他们都表现出这个问题。 如果我将ssh放入boot2docker映像并查看/etc/resolv.conf,则它

  • 问题内容: 是否可以(直接使用命令或API)从远程主机启动容器? 假设我有两台具有不同体系结构的机器:-A是一台机器-B是一台机器 我想使用我的A机器在B机器上运行一个容器。起初,我认为可以使用以下命令: 但这个命令实际上拉图像,并试图在其中一些最终的机器运行它的原因很明显,你不能运行的图像所特有的一种机器。 机器A和B之间的通信正常。我可以运行诸如或的命令,它可以给我预期的结果: 我听说过并且还