如果我运行 docker windows 容器,我可以运行 docker 命令,例如:
docker ps
返回:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
但是,如果我通过 Windows 上的 docker 桌面切换到 Linux 容器(这对于我需要构建的图像是必需的)并尝试相同的命令
docker ps
它返回:
error during connect: This error may indicate that the docker daemon is not running.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json": open //./pipe/docker_engine: The system cannot find the file specified.
我努力了:
- 将 docker 守护进程切换到 Windows(这无法解决我的问题,因为我需要运行前面提到的 Linux 守护进程。)
- 单击 docker 桌面上的“重置为出厂默认设置”按钮
- 在 docker Desktop 中激活“在 tcp://localhost:2375 上公开守护进程(无需 TLS)”选项
- 退出然后重新登录我的 docker 账户
- 通过系统托盘退出 docker 桌面,使用“wsl --shutdown”关闭 wsl,然后重新打开 docker 桌面(按此顺序)。
- 卸载/重新安装 docker 桌面
- 卸载/重新安装我的电脑上的 ubuntu 18.04 服务器。
附加信息:当我打开 docker Desktop 时主显示屏上出现的消息为:“Docker Desktop 无法停止......”
答案1
解决了取消注册 docker-desktop-data 发行版后的问题,该发行版被 docker-desktop 发行版用作容器镜像等的后备存储,以及取消注册 docker-desktop 发行版。
以管理员身份在 Powershell 中运行以下命令解决了该问题:
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data