在Docker for Mac上访问Docker守护程序远程api

时间:2016-09-09 12:01:01

标签: macos docker

我是OSX的跑步者Docker,无法让Docker远程API工作。

我的情况是这样的:

不,我想使用Jenkins docker-build-step插件来构建docker镜像,但我希望它在主机上使用docker守护程序,所以在Jenkins设置中,DOCKER_URL应该是这样的:2375。 (原因是我不想在jenkins容器上安装docker,如果我已经在我的主机上安装了它)。

有没有办法解决这个问题,还是de Docker for Mac目前还不支持这个?我试图摆弄导出DOCKER_OPTS或DOCKER_HOST选项但仍然在调用http://localhost:2375/images/json时拒绝连接。

基本上,问题更多是关于启用Docker for OSX远程api,用例从Jenkins docker容器调用它。

2 个答案:

答案 0 :(得分:7)

您可以考虑使用socat。它解决了我的问题,似乎很相似。

socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock &

这允许您使用以下代码从Docker容器访问macOS主机Docker API:tcp://[host IP address]:2375

在macOS上,socat可以像这样安装:

brew install socat

有关此主题的详细讨论,请参阅此处:Plugin: Docker fails to connect via unix:// on Mac OS X

答案 1 :(得分:0)

如果您已经向远程服务器添加了 SSH 公钥,那么您也可以将此 ssh 凭据用于 docker 连接。对于这种方法,您不需要在服务器上配置远程 api。

连接到 macOS Docker Desktop 时,可以使用 ssh(在 Mac 上启用后)

docker -H ssh:user@192.168.64.1 images

export DOCKER_HOST=ssh:user@192.168.64.1
docker images