You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6 Docker镜像构建与运行问题求助

Docker构建与运行问题分析

1. 第一次构建失败原因

你最初的Dockerfile中使用了COPY --from=build /app .,这里的build是Docker多阶段构建的阶段别名,但你的Dockerfile并没有定义任何名为build的构建阶段。Docker会默认把build当作镜像名称,尝试从Docker Hub拉取docker.io/library/build:latest镜像,这个镜像不存在,因此触发拉取权限/镜像不存在的报错。

如果要使用多阶段构建,需要先定义build阶段(比如用SDK镜像编译项目),示例如下:

# 定义build阶段
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["EventRestProject.csproj", "."]
RUN dotnet restore "./EventRestProject.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "EventRestProject.csproj" -c Release -o /app/build

# 运行阶段
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
USER root
WORKDIR /app
COPY --from=build /app/build .
ENTRYPOINT ["dotnet", "EventRestProject.dll"]

2. 运行命令报错原因

你构建镜像时指定的标签是image5(命令docker build -t image5 .),但运行时用的命令是docker run -p 8080:80 image4,使用了错误的镜像标签image4。本地没有这个标签的镜像,Docker会尝试去远程仓库拉取,找不到就会触发权限/镜像不存在的报错。

修正后的运行命令应该是:

docker run -p 8080:80 image5

内容的提问来源于stack exchange,提问作者Manoja T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:35:20