【问题标题】:missing microsoft docker images缺少 microsoft docker 图像
【发布时间】:2021-07-04 03:21:21
【问题描述】:

我对 docker 还很陌生,目前正在运行一些教程。

我已经通过 VSCode 扩展创建了一个 docker 文件,并且我有以下内容:-

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["CatalogDotNet5.csproj", "./"]
RUN dotnet restore "CatalogDotNet5.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "CatalogDotNet5.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "CatalogDotNet5.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "CatalogDotNet5.dll"]

现在我在控制台中运行docker build -t catalogdotnet5:v1 .,一切都完成后,我检查了 docker 图像,我只有:-

catalogdotnet5   v1        7ecc6bc42bba   27 seconds ago   217MB

我不应该也有 mcr.microsoft.com/dotnet/aspnet:5.0mcr.microsoft.com/dotnet/sdk:5.0 作为 docker 镜像吗?

感谢您的帮助和时间

【问题讨论】:

    标签: docker asp.net-core .net-core dockerfile


    【解决方案1】:

    如果您需要 docker 主机上可用的基本映像,则不要依赖构建工具来创建它们作为副作用,使用 docker pull 显式拉取它们。根据构建工具的不同,您可能看不到中间映像和基础映像。

    例如,使用 buildkit,它直接在 containerd 中构建镜像,在 docker 看不到的不同命名空间中,然后将结果导出回 docker。所以你不会看到构建缓存中的组件与 docker 图像缓存混合在一起。

    【讨论】:

    • 好的,很高兴知道!这是因为我遵循的教程将它们列为单独的图像,而我的却不起作用。我将它们分开拉,看看是否有效。感谢您的帮助!
    • @JMon 真的不需要拉。如果你尝试直接运行它们,而不是你构建的镜像,docker 会自动拉取它。本教程可能使用的是未启用 buildkit 的旧版本 Docker。
    • 所以仅仅构建 dockerfile 就足够了吧? docker build -t catalogdotnet5:v1 .
    • @JMon 足够做什么?您要解决什么错误?我不认为与教程看起来不同的列表是错误的。
    猜你喜欢
    • 1970-01-01
    • 2017-01-03
    • 2015-08-10
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    相关资源
    最近更新 更多