Docker的映像和主机不兼容

时间:2019-01-17 05:08:16

标签: docker amazon-ecs

我在运行Windows 10.0.17134的个人计算机上创建了一个asp.net核心mvc 3(预览版)的docker映像。我的码头工人将Windows Server Nano映像归档

  

从Microsoft / dotnet:3.0-aspnetcore-runtime-nanoserver-1809 AS基础   ...

此图像已发布到AWS ECS上的存储库,并且我有设置任务和服务,并且群集都正常。

但是我的容器无法启动并出现以下错误:

  

状态原因CannotPullContainerError:Windows版本   基于10.0.17134的映像与10.0.14393主机不兼容

我确定我在主机上运行Widows服务器,所以为什么抱怨我的主机是Windows 10.0.14393?那是我的个人笔记本电脑上的Windows版本!

3 个答案:

答案 0 :(得分:1)

当我尝试拉出最新的Windows nano服务器时,我遇到了类似的错误:

PS C:\WINDOWS\system32> docker pull mcr.microsoft.com/windows/nanoserver:1809_amd64 
1809_amd64: Pulling from windows/nanoserver
a Windows version 10.0.17763-based image is incompatible with a 10.0.17134 host

如果我看着dxdiag(运行-> dxdiag),那么我会发现:

Windows 10 Enterprise 64-bit (10.0, Build 17134)

所以我想那是来自主机号码的地方。这意味着我正在尝试获取对我的计算机而言太新的容器版本。我找到了此网页:

https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility

其中明确指出我的操作系统不支持2019版本。猜猜我必须等待!我认为您可以检查笔记本电脑和服务器的版本,看看它们是否与您要运行的docker映像兼容。

答案 1 :(得分:0)

可能的原因之一是,将在主机上运行的docker配置为与Linux容器一起使用,这是默认行为。请注意,尽管事实是,主机是Windows计算机(Windows 10,并且可能是您所引用的Windows服务器)可以与Docker中基于Linux的映像一起使用。

ASP net core听起来像Windows容器,因此您可能应该“切换”模式:在docker UI中,有一个“ Switch To Windows Container”菜单项。你尝试过吗?

答案 2 :(得分:0)

“主机”是您在其上运行容器的计算机,因此,它确实是指Win 10便携式计算机,如果那是运行Docker的计算机,并且是您在其上创建容器的计算机。

>

您可能只需要更新到Windows 10内部版本1809(2018年10月发行)。我遇到了同样的问题,我注意到我的机器仍在运行1803,即使我正在执行自动更新。我只是去Windows更新并手动检查更新。