客户端默认连接本地 Unix 套接字,可通过设置 DOCKER_HOST 环境变量或配置 ~/.docker/config.json 中的 context 实现远程连接,前者优先级更高,且无需修改客户端安装包。
客户端默认连接的是本地 unix 套接字 /var/run/docker.sock,要让它默认连远程守护进程(比如 192.168.1.100:2375),不需要改客户端安装包,只需设置环境变量或配置文件即可生效。
通过环境变量指定默认远程地址
这是最常用、最轻量的方式。Docker 客户端会优先读取 DOCKER_HOST 环境变量:
- 临时生效(当前终端):
export DOCKER_HOST=tcp://192.168.1.100:2375 - 永久生效(对当前用户):
把上面那行加到~/.bashrc或~/.zshrc,然后运行source ~/.bashrc - 验证是否生效:
执行docker info | grep "Server Version",若返回远程主机信息,说明已连上
通过 Docker CLI 配置文件设置
Docker 支持在 ~/.docker/config.json 中声明默认上下文(Context),推荐用于多环境切换:
- 先创建一个指向远程主机的上下文:
docker context create my-remote --docker host=tcp://192.168.1.100:2375 - 设为默认上下文:
docker context use my-remote - 此后所有
docker命令(不带--context)都会自动使用该远程地址
注意客户端与守护进程的匹配关系
客户端能连上远程守护进程,前提是服务端已正确开启 TCP 监听(如 -H tcp://0.0.0.0:2375),且网络可达、防火墙放行。但客户端本身无需额外安装服务或修改二进制文件。
- 普通 Linux/macOS 远程机器只要装了
docker-cli(不用装完整 Docker Engine)就能用 - Windows 上可只安装 Docker Desktop 的 CLI 组件,或直接用 WSL 中的
docker - 如果服务端启用了 TLS 认证,客户端还需同步配置
DOCKER_CERT_PATH指向证书目录
不复杂但容易忽略:环境变量和上下文两种方式互不冲突,但 DOCKER_HOST 优先级高于上下文;调试时可用 docker context inspect my-remote 查看实际解析地址。


















