.NET Core 2.0 Docker镜像缺失及2.1镜像向后兼容性问题咨询
问题解答
镜像拉取失败原因
.NET Core 2.0 已于2018年10月正式结束官方支持,微软会常规性下架所有停止支持版本的官方Docker镜像,你遇到的mcr.microsoft.com/dotnet/aspnet:2.0 not found报错就是镜像被下架导致的,这类过期版本清理动作属于微软常规运维操作,不会单独发布公告。
你收到的报错本身就是明确的镜像不存在提示:
[1/4] FROM mcr.microsoft.com/dotnet/aspnet:2.0 resolve mcr.microsoft.com/dotnet/aspnet:2.0 0.1s done ERROR: mcr.microsoft.com/dotnet/aspnet:2.0 not found [internal] load metadata for mcr.microsoft.com/dotnet/aspnet:2.0: [1/4] FROM mcr.microsoft.com/dotnet/aspnet:2.0: failed to solve with frontend dockerfile.v0: failed to build LLB: failed to load cache key: mcr.microsoft.com/dotnet/aspnet:2.0 not found
.NET Core 2.1镜像兼容性说明
- 普通业务项目可直接兼容:.NET Core小版本有官方向后兼容承诺,2.1版本仅做了功能新增、BUG修复和安全更新,几乎没有移除2.0的公开API,绝大多数2.0项目不需要修改任何业务代码,直接把Dockerfile里的基础镜像版本从2.0替换为2.1即可正常构建运行。
- 特殊场景兼容处理:如果你的项目用到了2.0的内部非公开API(这类场景极少见),只需要把项目文件里的
<TargetFramework>配置从netcoreapp2.0修改为netcoreapp2.1,本地重新编译测试无异常后再更新Docker镜像版本即可,升级成本极低,不需要调整业务逻辑。
不建议你继续使用已停止支持的.NET Core 2.0版本,过期版本没有后续安全补丁,存在明显的安全风险,升级到2.1版本是成本最低的合规方案。
内容的提问来源于stack exchange,提问作者yuribsl
相关产品推荐
相关产品推荐

