您正在构建一个将包含 .NET Core 应用程序的 Docker 镜像。Dockerfile 包含带行号的行以供参考。为确保最终镜像尽可能小,您应该修改 Dockerfile 中的哪一行?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 4.
为什么这是答案
正确答案是 4。RUN dotnet restore 命令会下载所有 NuGet 包,包括构建和运行时依赖项。在构建镜像时,这些包通常会被缓存。然而,在最终的生产镜像中,我们只需要运行时所需的依赖项。 选项 1 (FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build) 是基础镜像,对于构建过程是必需的,不能删除。 选项 3 (WORKDIR /src) 设置工作目录,是后续操作的基础,不能删除。 选项 7 (ENTRYPOINT ["dotnet", "MyWebApp.dll"]) 是应用程序的入口点,对于运行应用程序是必需的,不能删除。 为了减小最终镜像的大小,最佳实践是使用多阶段构建。在构建阶段(如本例中的 build 阶段),可以使用包含 SDK 的镜像来编译和发布应用程序。然后,在最终的生产阶段,切换到一个更小的运行时镜像(例如 mcr.microsoft.com/dotnet/aspnet:5.0),只复制构建阶段生成的发布文件。这样可以避免将 SDK 和所有构建工具包含在最终的生产镜像中,从而显著减小镜像大小。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡