az acr 登录引发 DOCKER_COMMAND_ERROR 并显示消息 docker daemon not running

问题描述 投票:0回答:2

带有 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
azure-container-registry docker-daemon
2个回答
0
投票

发生错误:连接期间出现 DOCKER_COMMAND_ERROR 错误:此错误可能表明 docker 守护进程未运行。: Get"http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json": open / /./pipe/docker_engine: 系统找不到指定的文件。

上述错误是由于有时 docker 可能无法在启动或登录时启动。

可以使用以下建议:

  1. 打开 Powershell 并输入 dockerd,这将启动守护进程。

  2. 以管理员身份运行打开docker并运行以下命令:

    C:\Program Files\Docker\Docker\DockerCli.exe -SwitchDaemon

  3. 检查 WSL2 的版本,如果版本较旧可能有问题,然后下载适用于 Windows 11 中 x64 位机器的最新 WSL2 Linux 内核更新包。

参考: 旧版本 WSL 的手动安装步骤 |微软文档


0
投票

我遇到了这个问题,它与 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

© www.soinside.com 2019 - 2024. All rights reserved.