构建失败:获取 https://registry-1.docker.io/v2/microsoft/aspnetcore/manifests/1.1:未经授权:用户名或密码不正确

failed to build: Get https://registry-1.docker.io/v2/microsoft/aspnetcore/manifests/1.1: unauthorized: incorrect username or password

我的 aspnetcore docker 项目构建,但是当我单击 Docker 按钮(或按 F5)到 运行 我得到

Severity    Code    Description Project File    Line    Suppression State
Error   MSB4018 The "PrepareForLaunch" task failed unexpectedly.
Microsoft.DotNet.Docker.CommandLineClientException: Creating network "dockercompose1627893588_default" with the default driver
Building pswebapi
Service 'pswebapi' failed to build: Get https://registry-1.docker.io/v2/microsoft/aspnetcore/manifests/1.1: unauthorized: incorrect username or password.

For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting ---> Microsoft.DotNet.Docker.CommandLineClientException: Creating network "dockercompose1627893588_default" with the default driver
Building pswebapi
Service 'pswebapi' failed to build: Get https://registry-1.docker.io/v2/microsoft/aspnetcore/manifests/1.1: unauthorized: incorrect username or password
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.DotNet.Docker.DockerComposeClient.<ExecuteAsync>d__18.MoveNext()
   --- End of inner exception stack trace ---
   at Microsoft.DotNet.Docker.DockerComposeClient.<ExecuteAsync>d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.DotNet.Docker.DockerWorkspace.<PrepareForLaunchAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.DotNet.Docker.BuildTasks.DockerBaseTask.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() docker-compose  C:\Program Files (x86)\Microsoft Visual Studio17\Professional\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets  192 

我确实使用 Docker 设置共享了 C:。 我正在使用 linux 个容器

Docker文件是

FROM microsoft/aspnetcore:1.1
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "PsWebApi.dll"]

我已经升级到最新的 nuget 包。

user id对应的email用于登录dockerhub 在这种情况下实际上是两个不同的东西。

需要用户名 的 id,而不是 email 才能获得 images


解决

通过

在两者之间切换

> docker logout

然后在命令行上

> docker login

并使用您的 id 登录。

请注意,使用电子邮件登录后,可以在 docker 站点上找到 id

系统将提示您输入凭据。同样,对于该用户名,不要使用电子邮件地址。

我在最新的 ASP.NET 核心模板中也遇到了同样的问题。以下修复对我有用。

  • 打开 Package Manager Console window.
  • 运行命令docker logout.

然后再次 run/debug(F5) 应用程序。

附带说明一下,您需要在 Docker 中切换到 Windows 容器。否则你会看到另一个错误:image operating system "windows" cannot be used on this platform.