我开始使用Docker并熟悉.NET Core和Visual Studio 2017.我创建了一个名为“WebApplicationCore21”的新Web应用程序(Razor Pages),启用了Docker支持,并在门外接收了一个很好的Dockerfile.
FROM microsoft/dotnet:2.1-aspnetcore-runtime-nanoserver-1709 AS base
WORKDIR /app
EXPOSE 62911
EXPOSE 44323
FROM microsoft/dotnet:2.1-sdk-nanoserver-1709 AS build
WORKDIR /src
COPY WebApplicationCore21/WebApplicationCore21.csproj WebApplicationCore21/
RUN dotnet restore WebApplicationCore21/WebApplicationCore21.csproj
COPY . .
WORKDIR /src/WebApplicationCore21
RUN dotnet build WebApplicationCore21.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish WebApplicationCore21.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApplicationCore21.dll"]
当项目构建正常时,它在运行时出错(F5),说明:
Description: The DOCKER_REGISTRY variable is not set. Defaulting to a blank string.
Project: docker-compose
File: Microsoft.VisualStudio.Docker.Compose.targets
Line: 363
步骤已验证:
>在主板和Windows 10 Pro中启用Hyper-V
>安装了Docker for Windows
>可以登录Docker Hub和客户端
>将Docker客户端切换到Linux的Windows容器
我还注意到虽然我可以使用我的集线器凭据登录Docker客户端,但尝试在PowerShell中运行docker login并使用相同的用户名/密码会产生以下结果:
Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password
也许这是有帮助的,也可能是无关的;我只需要从VS2017运行.