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连接成功

更多推荐