带有 wsl2 ubuntu-22.04 的 Windows 11。
在 Windows 终端中,我打开 PowerShell 窗口并使用命令启动
wsl
:
wsl
然后我使用以下命令在此窗口中启动 docker 守护进程:
sudo dockerd
它提示输入管理员密码,我输入该密码,然后启动守护进程。
接下来,我在 Windows 终端中打开一个新的 PowerShell 窗口,运行
wsl
并运行容器以验证一切正常。到目前为止一切顺利。
现在我想使用以下命令登录 Azure 容器注册表:
az acr login -n {name_of_my_acr}
这将返回以下错误:
You may want to use 'az acr login -n {name_of_my_acr} --expose-token' to get an access token,
which does not require Docker to be installed.
An error occurred: DOCKER_COMMAND_ERROR
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 -v
命令查看 Docker 版本信息:
Docker version 20.10.12, build 20.10.12-0ubuntu4
发生错误:连接期间出现 DOCKER_COMMAND_ERROR 错误:此错误可能表明 docker 守护进程未运行。: Get"http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json": open / /./pipe/docker_engine: 系统找不到指定的文件。
上述错误是由于有时 docker 可能无法在启动或登录时启动。
可以使用以下建议:
打开 Powershell 并输入 dockerd,这将启动守护进程。
以管理员身份运行打开docker并运行以下命令:
C:\Program Files\Docker\Docker\DockerCli.exe -SwitchDaemon
检查 WSL2 的版本,如果版本较旧可能有问题,然后下载适用于 Windows 11 中 x64 位机器的最新 WSL2 Linux 内核更新包。
我遇到了这个问题,它与 docker 无关。这是因为当我为 Azure CLI 键入 az 命令时,它使用的是 Windows 安装的 Azure CLI,而不是 Linux WSL2 安装。
按照 Microsoft 的 Linux 安装页面上的步骤在我的 WSL2 实例中实际安装 Azure CLI,然后重新启动 shell 为我解决了这个问题。
说明在这里; https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt