繁体   English   中英

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

[英]Access Docker daemon Remote api on Docker for Mac

我正在为 OSX 运行 Docker,但无法使 Docker 远程 API 正常工作。

我的情况是这样的:

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

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

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

你可以考虑使用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

有关此主题的详细讨论,请参见此处:插件:Docker 无法在 Mac OS X 上通过 unix:// 连接

如果您已经向远程服务器添加了 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM