OSX系统连接Docker URL时2376端口报Connection refused错误求助
macOS环境socat转发Docker端口2376连接拒绝排查方案
具体报错信息:
Connection refused: /127.0.0.1:2376
java.net.ConnectException: Connection refused
Caused: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:2376
(省略后续栈追踪内容)
上述报错本质是请求到达127.0.0.1:2376时无对应服务响应,按以下步骤逐一排查即可:
- 检查Docker Desktop基础配置:打开Docker Desktop设置面板,进入「通用」标签,确认已勾选Expose daemon on tcp://localhost:2375 without TLS,OSX版Docker默认不开放TCP端口,未开启该选项时socat无法转发docker daemon请求。
- 验证socat容器配置正确性:你启动socat容器的命令需符合以下规则:
docker run -d -p 2376:2375 -v /var/run/docker.sock:/var/run/docker.sock alpine/socat tcp-listen:2375,fork,reuseaddr unix-connect:/var/run/docker.sock
需确认端口映射规则是本地2376映射容器内2375端口,且正确挂载了本地Docker套接字文件/var/run/docker.sock,文件路径写错会直接导致转发失败。 - 端口占用校验:执行命令
lsof -i :2376,检查返回结果中PID对应的进程是否为socat容器进程,避免其他进程占用2376端口导致冲突。 - 基础连通性测试:执行命令
curl http://127.0.0.1:2376/version,如果正常返回Docker版本信息说明端口转发链路正常,问题出在Java客户端配置上;如果依然返回连接拒绝,优先重启socat容器和Docker Desktop再重试。 - Java客户端配置校验:2376为Docker默认TLS加密端口,如果你没有配置TLS证书,Java客户端请求会被拦截,要么在客户端配置对应TLS证书(证书默认存放在
~/.docker/certs.d目录),要么改为使用2375非加密端口连接。
内容的提问来源于stack exchange,提问作者willbl98
相关产品推荐
相关产品推荐

