docker错误:failed to load listeners: listen tcp 0.0.0.0:2375: bind: address already in use
docker命令出现以下错误:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
使用journalctl -u docker.service --no-pager查看日志

如果你的 Linux 是 WSL2 子系统,Windows 系统的进程可能占用 2375 端口(Linux 工具查不到 Windows 进程),需要在Windows 的 PowerShell(管理员) 中排查:
查看 Windows 中 2375 端口的占用:
Get-NetTCPConnection -LocalPort 2375

iphlpsvc 是 Windows 系统核心的 “IP 帮助服务”,负责 IPv6 过渡、端口代理、网络连接共享等关键功能,绝对不能停止(停止会导致网络异常,比如 IPv6 失效、VPN 连不上等)。
它占用 2375 端口的原因很明确:第三方软件(比如代理、VPN、旧容器工具)配置了通过 iphlpsvc 转发端口,导致系统服务被动绑定了 2375。这种情况下,不用纠结 “怎么让 iphlpsvc 释放端口”,直接用更简单的方案避开冲突即可:
最优方案:修改 Docker 监听端口(避开 2375,5 分钟搞定)
第一种和第二种选一种,不要都配置,会冲突
第一种:编辑 Docker 配置文件(Linux/WSL2 终端)
打开 Docker 的核心配置文件 daemon.json:
sudo nano /etc/docker/daemon.json
找到 "hosts" 配置项,将 2375 改为 2376(或其他未占用端口,比如 2377):
原配置可能类似:
{
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"],
"proxies": { // 你的代理配置,保留不变
"http-proxy": "http://127.0.0.1:7897",
"https-proxy": "http://127.0.0.1:7897"
}
}
修改后:
{
"hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"], // 2375→2376
"proxies": {
"http-proxy": "http://127.0.0.1:7897",
"https-proxy": "http://127.0.0.1:7897"
}
}
保存退出:按 Ctrl+O 确认保存,再按 Ctrl+X 退出 nano 编辑器。
重新加载 systemd 配置:
sudo systemctl daemon-reload
重启 Docker 服务(使新配置生效):
sudo systemctl restart docker
检查 Docker 状态(确认启动成功):
sudo systemctl status docker
若显示 active (running),说明配置生效且服务正常。
第二种:修改systemd 服务文件
打开 Docker 的 systemd 服务文件
sudo vim /etc/systemd/system/multi-user.target.wants/docker.service
- 进入 vim 后,按
i键进入「编辑模式」,才能修改内容。
找到并修改「ExecStart」行(关键)
在文件中搜索 ExecStart(按 /ExecStart 回车可快速定位),这一行是 Docker 的启动命令,默认配置通常类似:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改规则:在原有命令末尾追加 -H tcp://0.0.0.0:端口号(端口号用之前确定的未占用端口,比如 2376)。
重新加载 systemd 配置:
sudo systemctl daemon-reload
重启 Docker 服务(使新配置生效):
sudo systemctl restart docker
检查 Docker 状态(确认启动成功):
sudo systemctl status docker
若显示 active (running),说明配置生效且服务正常。
idea中记得修改

可能注册表连接超时,重启idea连接成功
更多推荐

所有评论(0)