Docker 套接字转发
使用 Secure Pipes SSH 隧道从 Mac 访问远程 Docker 套接字,或从远程主机访问本地套接字。
执行前须知
Docker Socket 访问权限可控制 Docker 主机,通常相当于管理员权限。仅绑定回环地址,不要将监听端口暴露到不受信任的网络,并在使用后停止隧道。监听端所在机器的其他用户和进程也可能访问该未认证端口。SSH 用户必须有权访问对应 Socket,SSH 服务器也必须允许相应转发;不要为了连接成功而降低 Socket 权限。
使用示例
先决条件:在运行测试的位置安装 Docker CLI,并确保目标 Docker 守护进程正在运行。在 Mac 上,检查当前的 Docker 上下文; Unix 套接字路径必须是绝对路径。远程上下文不是本地套接字。
docker context inspect --format '{{.Endpoints.docker.Host}}'本地转发:在 Secure Pipes 中选择本地转发,将本地端点设为 127.0.0.1:8888,远程目标选择 Unix Socket,路径填入 /var/run/docker.sock。连接远程 Ubuntu 后,在 Mac 上运行以下命令。
docker -H tcp://127.0.0.1:8888 ps要查找用于远程转发的 Mac 套接字,请检查 Mac 上的 Docker 上下文。例如,OrbStack 可能会报告 unix:///Users/yourname/.orbstack/run/docker.sock;使用您实际的绝对路径。
docker context inspect --format '{{.Endpoints.docker.Host}}'远程转发:在 Secure Pipes 中选择远程转发,将远程端点设为 127.0.0.1:8888,本地目标选择 Unix Socket,填入 Mac 的实际 Socket 路径。连接后,在远程主机上运行以下命令。
docker -H tcp://127.0.0.1:8888 ps或者,仅为一个命令设置 DOCKER_HOST。这不会更改当前 shell 或保存的 Docker 上下文。
DOCKER_HOST=tcp://127.0.0.1:8888 docker ps权威参考
核对日期:2026 年 10 月 27 日