【问题标题】:Are there docker remote api command line client's是否有 docker remote api 命令行客户端的
【发布时间】:2014-07-05 08:42:02
【问题描述】:

我有兴趣支持将 docker 用作本地工作流程的一部分的开发人员。他们中的大多数都在 Windows 和 OSX 上,并且会使用 Boot2Docker 来运行 docker。

图像源位于项目源代码旁边的主机上。

没有办法(不弄乱 Boot2Docker 映像来添加来宾添加,或运行 samba 容器)将主机目录共享到 Boot2Docker 虚拟机中,所以我想要使用远程 API 来达到同样的效果。

即dev 在主机上构建 maven 项目,这会导致创建 .war 工件。

在主机上创建一个 Dockerfile 以构建可以部署该 .war 工件的映像。

我想要一个可以在主机上运行的命令行工具,它可以让我针对该 Dockerfile 和相关文件调用构建映像命令,以便在 Boot2Docker 虚拟机。

有多种库可以与 docker remote api 通信,但我无法找到可以直接从主机命令行运行的工具。

我正在考虑为 docker-java 库编写自己的命令行界面,但想知道是否有可以使用的现有工具?

【问题讨论】:

  • 苏能澄清一下吗? docker build 已经在 boot2docker vm 上运行。 cli 基本上将 Dockerfile 和上下文文件发送到服务器以进行构建。因此,在docker build 命令结束时,映像已经在您的 boot2docker 虚拟机上。
  • 在 Boot2Docker VM 上,您可以使用 docker 命令,但我的 docker 文件位于 windows(或 OSX)主机文件系统上。我的理解是没有 docker 命令可以在 Windows 或 OSX 中本地运行。理想情况下,我会在主机上本地运行 docker 命令并将其指向远程 api 位置。我正在寻找一种使用 docker 命令或基于远程 api 库构建的另一个 cli 的方法。
  • 我也有同样的问题,我更喜欢使用打补丁的 iso 来支持共享文件夹,只需将官方 boot2docker.iso 替换为打补丁的 iso。 medium.com/boot2docker-lightweight-linux-for-docker/… 没那么乱。

标签: java docker boot2docker


【解决方案1】:

我认为您已经错过了 boot2docker 不仅提供了 VM,还提供了一个可以连接到它的 docker 二进制文件(请参阅 Boot2Docker 文档 for OSXfor Windows 上的运行 Docker 部分。

docker cli(在所有平台上)只是与 docker 守护进程通信。默认设置是通过本地 unix 套接字进行通信,这被认为更安全,但 boot2docker 配置为侦听 VM 上的 TCP 套接字,该套接字已预先配置为可从主机访问。

在启动最近的 boot2docker 版本时(至少在 OSX 上),您会收到此消息,其中包含您需要的唯一配置:

$ boot2docker up
2014/07/05 18:23:01 Waiting for VM to be started...

2014/07/05 18:23:02 Started.
2014/07/05 18:23:02 To connect the Docker client to the Docker daemon, please set:
2014/07/05 18:23:02     export DOCKER_HOST=tcp://192.168.59.103:2375

如果我理解了这个问题,这就是你所需要的,并且全部由 docker 和 boot2docker 提供。

【讨论】:

  • 对于 docket 客户端,只需使用docker -H tcp://192.168.59.103:2375 连接远程 docker daemon。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-24
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
  • 2015-12-05
相关资源
最近更新 更多