0

鉴于这两个系统:

  • VM#1 运行 jenkins-container 已安装/工作docker-machine
  • VM#2 运行一个普通的 ubuntu 并docker-engine安装

两个虚拟机都通过网桥连接。我可以从 jenkins 容器中为 VM#2 上的 Docker-Host 卷曲。

现在我想docker-machine在我的 jenkins 容器中使用 VM#2 Docker-Host 来构建一个映像(位于 jenkins 工作区中)。

所有关于此的文档只向我展示了 virtualbox 或 aws 之类的驱动程序,但我想连接到我自己创建的 Docker-Host。

我尝试了什么

在我的 Jenkins 容器中,我创建了两个环境变量:

$ export DOCKER_HOST=tcp://192.168.0.102:2375 
$ export DOCKER_MACHINE_NAME=dev

curl 192.168.0.102:2375产量{"message":"page not found"}

跑步docker-machine env dev给了我Host does not exist: "dev"

PS

不想安装docker-engine到我的詹金斯图像中。我想使用瘦客户端docker-machine将映像构建委托给 VM#2,仅此而已

4

1 回答 1

0

假设 VM#1 是192.168.33.100并且 VM#2 是192.168.33.101。两者都可以互相接触。现在你根本不需要docker-machine进入图片。你可以在下面做

export DOCKER_HOST=tcp://192.168.33.101:2375/
docker build ....

假设您为 docker 主机打开了 2375 端口。有关此环境变量的详细信息,请参阅下面的 url

https://docs.docker.com/engine/reference/commandline/cli/#environment-variables

编辑-1

如果你想添加一台现有的机器,docker-machine你可以使用下面的方法

docker-machine create --driver none -url=tcp://VM2:2376 VM2

注意:您还需要为此设置 TLS,否则由于未解决的问题https://github.com/docker/machine/issues/1532它不能直接与 Docker-machine 一起使用

于 2017-09-05T19:35:10.250 回答