Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
集装箱Jenkins:在内部网络中建立与docker云的连接_Docker_Jenkins_Docker For Mac - Fatal编程技术网

集装箱Jenkins:在内部网络中建立与docker云的连接

集装箱Jenkins:在内部网络中建立与docker云的连接,docker,jenkins,docker-for-mac,Docker,Jenkins,Docker For Mac,我正在尝试将mac连接到运行Jenkins的raspberry,以启动docker在mac上按需构建奴隶。但我无法在Jenkins的docker云配置中建立连接 我的设置如下: 树莓皮在192.168.2.111:詹金斯在码头上奔跑 mac mini在192.168.2.220使用docker for mac:这应该通过Jenkins docker插件按需运行docker容器作为构建从属 从Jenkins到mac的SSH连接可以正常工作。mac代理已启动并正在运行 现在我想使用Jenkins

我正在尝试将mac连接到运行Jenkins的raspberry,以启动docker在mac上按需构建奴隶。但我无法在Jenkins的docker云配置中建立连接

我的设置如下:

  • 树莓皮在192.168.2.111:詹金斯在码头上奔跑
  • mac mini在192.168.2.220使用docker for mac:这应该通过Jenkins docker插件按需运行docker容器作为构建从属
从Jenkins到mac的SSH连接可以正常工作。mac代理已启动并正在运行

现在我想使用Jenkins的docker插件并尝试配置docker云

由于docker for mac不直接在主机上运行(而是在hyperkit上),因此我应该运行
socat
以如下方式公开Unix套接字:

docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:2376:2375 alpine/socat TCP-LISTEN:2375,fork unix-connect:/var/run/docker.sock
容器正在运行:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
76a75c5249d7        alpine/socat        "socat tcp-listen:23…"   19 seconds ago      Up 17 seconds       127.0.0.1:2376->2375/tcp   compassionate_feynman
然后在运行Jenkins容器的Raspberry pi上,我还添加了

DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock"
在文件
/etc/default/docker
的末尾,如所述

然后在Jenkins云配置“docker”中,我将“docker主机URI”设置为
tcp://127.0.0.1:2376
,并将Docker主机名(mac mini)设置为
192.168.2.220
。测试此设置失败

我找到的所有教程似乎都有Jenkins在同一台主机上运行docker奴隶。我想这就是为什么在我的例子中,socat容器是不够的

有趣的是:
在mac上运行
curl 127.0.0.1:2376/version
(显示预期信息),但在raspberry上运行
curl 192.168.2.220:2376/version
不起作用(连接被拒绝)。也许这可以帮助更多了解网络的人…

机长反击

在mac上启动socat时,只需使用网络IP而不是本地主机

docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 192.168.2.220:2376:2375 alpine/socat TCP-LISTEN:2375,fork unix-connect:/var/run/docker.sock