MacOS Docker开放2375端口

这篇博客介绍了如何在Mac上使用socat容器转发Docker API,以便于远程操作Docker。通过拉取bobrik/socat镜像并创建相关容器,解决了Mac无法直接开启远程API服务的问题。

Docker版本低按如下操作进行,适用于MacOS Docker Desktop 3及以下版本:

Mac 不能开启远程 API 服务,在 docker的 issue 中得到了解决方案。可以运行一个 socat 容器,将 unix socket 上的 Docker API 转发到 MacOS 上指定的端口中,详细如下:

  1. 拉socat镜像:docker pull bobrik/socat:latest
  2. 创建容器,开放2375:
    $ docker pull alpine/socat $ docker run -d --restart=always \ -p 0.0.0.0:2375:2375 \ -v /var/run/docker.sock:/var/run/docker.sock \ alpine/socat \ tcp-listen:2375,fork,reuseaddr,ignoreeof unix-connect:/var/run/docker.sock
  3. 通过ps -a查看已创建成功,此时可通过docker java api远程操作docker.

在这里插入图片描述

以上,如果发现以下错误,说明不支持了。

[DEPRECATION NOTICE] Docker Image Format v1 and Docker Image manifest version 2, schema 1 support is disabled by default and will be removed in an upcoming release. Suggest the author of docker.io/bobrik/socat:latest to upgrade the image to the OCI Format or Docker Image manifest v2, schema 2. More information at https://docs.docker.com/go/deprecated-image-specs/

翻译:
您在使用 docker.io/bobrik/socat:latest 镜像时遇到的警告信息表明,这个镜像使用的是旧版的 Docker Image Format v1 和 Docker Image manifest version 2, schema 1 格式。这种旧格式已被 Docker 官方弃用,并将在未来版本中完全移除。

请以下最新办法,适用Mac OS Docker Desktop4及以上:

  1. 拉镜像:docker pull alpine/socat
  2. 运行容器:
    docker run -d --restart=always
    -p 0.0.0.0:2375:2375
    -v /var/run/docker.sock:/var/run/docker.sock
    alpine/socat
    tcp-listen:2375,fork,reuseaddr,ignoreeof unix-connect:/var/run/docker.sock
  3. 验证:curl http://127.0.0.1:2375或者telnet 127.0.0.1 2375
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值