[英]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.