MacOS下Docker端口2375无监听排查及可用性验证方法
MacOS Docker Desktop 2375端口配置问题排查
问题背景
MacOS系统中已安装并运行Docker Desktop,但应用抛出连接错误:
java.lang.RuntimeException: com.bmuschko.gradle.docker.shaded.org.apache.hc.client5.http.HttpHostConnectException: Connect to http://127.0.0.1:2375 [/127.0.0.1] failed: Connection refused (Connection refused)
执行sudo lsof -i -P | grep LISTEN未找到2375端口监听记录,随后在Docker Engine配置中添加hosts字段并重启daemon,再次执行监听检查仍无结果。
1. 这种情况是否正常?
不正常。正确配置tcp://127.0.0.1:2375并重启Docker daemon后,端口应处于监听状态,但MacOS的特殊架构会导致宿主系统的lsof无法直接检测到。
2. 为什么宿主系统lsof看不到2375端口监听?
MacOS上的Docker Desktop运行在内置虚拟机中,而非直接在宿主系统进程空间。你在宿主执行的lsof只能检测宿主自身的端口监听,Docker daemon实际是在虚拟机内部监听2375端口,因此宿主层面看不到记录。
3. 如何验证2375端口是否正常工作?
方法一:通过Docker容器内部测试
- 打开Docker Desktop,启动任意一个容器
- 进入容器的终端界面(点击容器卡片的
Exec按钮) - 执行命令:
若返回包含Docker版本信息的JSON数据,说明端口正常监听。curl http://127.0.0.1:2375/version
方法二:在宿主系统通过环境变量验证
在宿主终端执行:
export DOCKER_HOST=tcp://127.0.0.1:2375 docker info
若docker info能正常返回Docker系统信息,说明2375端口的连接通路正常。
方法三:检查Docker daemon日志
- 打开Docker Desktop,点击右上角鲸鱼图标进入设置
- 进入
Resources->Advanced面板,查看Daemon日志 - 若日志中出现
Listening on tcp://127.0.0.1:2375的条目,说明配置已生效。
额外注意事项
- MacOS下不建议将2375端口暴露到公网,避免安全风险,仅限本地测试使用
- 若配置后仍无法连接,检查是否有防火墙拦截2375端口,或确认Docker Desktop重启后自定义配置未被重置
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

