假设我在本地计算机上安装了 .NET Framework 4.8 SDK 和运行时。我有一个包含基本映像指令的 dockerfile
FROM mcr.microsoft.com/dotnet/framework/sdk:4.8
。当我构建映像时,它将安装 .NET Framework 4.8 SDK 和运行时作为层,还是从我的计算机上已安装的 .NET Framework 4.8 SDK 和运行时创建层?
当您使用 FROM 指令构建 Docker 镜像时,Docker 会检查 Dockerfile 中指定的基础镜像是否存在于本地。如果基础镜像不存在,将从 Docker 注册表下载。在您的情况下,由于您的本地计算机上安装了 .NET Framework 4.8 SDK 和运行时,Docker 将不会从 Internet 下载 SDK 和运行时层。相反,它将使用您计算机上已有的层来创建图像。
Docker 构建过程通过为 Dockerfile 中的每个步骤创建层来工作。这些层被缓存,这使得后续构建速度更快。如果在不同的 Dockerfile 中使用相同的基础镜像,则在层未更改的情况下,层将被重用。