代码之家  ›  专栏  ›  技术社区  ›  Aref Karimi

Docker的镜像和主机不兼容

  •  0
  • Aref Karimi  · 技术社区  · 7 年前

    我在我的个人电脑上创建了一个asp.net核心mvc 3(预览版)的docker镜像,它运行windows 10.0.17134。我的docker文件windows服务器nano映像

    来自Microsoft/Dotnet:3.0-aspnetcore-runtime-nanoserver-1809作为基础 …

    这张图片发布到aws ecs上的一个存储库中,我已经完成了安装任务、服务和集群。

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

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

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

    2 回复  |  直到 7 年前
        1
  •  1
  •   MrBerta    7 年前

    我在尝试拉取最新的Windows NanoServer时也遇到了类似的错误:

    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(run->dxdiag),则可以看到:

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

    所以我想这就是主持人的电话号码。这意味着我试图得到一个容器版本,这对我的计算机来说太新了。我找到了这个网页:

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

    在那里它清楚地表明2019版本不支持我的操作系统。我想我得等一下!我想你可以检查你的笔记本电脑和服务器的版本,看看它们是否与你试图运行的Docker镜像兼容。

        2
  •  0
  •   Mark Bramnik    7 年前

    其中一个可能的原因是,在主机上运行的Docker被配置为使用Linux容器,这是默认行为。注意,尽管主机是一台windows机器(windows 10,可能还有您提到的windows服务器),但它可以在docker中使用基于linux的映像。

    asp net core听起来像一个windows容器,所以您可能应该“切换”模式:在docker ui中有一个“切换到windows容器”菜单项。你试过这个吗?

        3
  •  0
  •   JMarsch    7 年前

    “主机”是运行容器的计算机——如果这是运行Docker的计算机,并且是创建容器的计算机,那么它确实指的是Win 10笔记本电脑。

    您可能只需要更新到Windows10Build1809(2018年10月发布)。我遇到了同样的问题,我注意到我的机器仍然在运行1803——尽管我正在进行自动更新。我刚转到windows更新并手动检查更新。