mac 使用TCP连接docker

在 macOS 上,Docker Desktop 默认不支持直接通过 TCP 端口访问 Docker 守护进程。不过,你可以通过运行一个 socat 容器来实现这一功能。以下是具体步骤

步骤 1: 拉取 socat 镜像

首先,你需要拉取 socat 镜像:

sh
docker pull alpine/socat

步骤 2: 运行 socat 容器

接下来,运行一个 socat 容器,将 Unix 套接字上的 Docker API 转发到指定的 TCP 端口(例如 2375):

sh
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: 验证 TCP 端口是否开放

你可以使用 netstatlsof 命令来验证 2375 端口是否已经开放:

sh
netstat -an | grep 2375

或者

sh
lsof -i :2375

如果输出中包含 0.0.0.0:2375,则表示 2375 端口已成功开放。

步骤 4: 测试远程连接

你可以使用 curl 或其他工具来测试远程连接是否成功:

sh
curl http://localhost:2375/info

如果一切正常,你会看到 Docker 守护进程的信息。

 

注意事项

  • 安全性:开放 2375 端口可能会带来安全风险,因为该端口上的 Docker API 未加密。建议仅在信任的网络环境中使用,并考虑使用 TLS 加密。
  • 防火墙:确保你的防火墙设置允许通过 2375 端口的流量。

通过以上步骤,你可以在 macOS 上通过 TCP 端口访问 Docker 守护进程

posted @ 2025-01-17 12:26  margo  阅读(105)  评论(0)    收藏  举报