【问题标题】:Windows docker container vs Linux docker containerWindows docker 容器与 Linux docker 容器
【发布时间】:2017-11-23 15:05:50
【问题描述】:

总的来说,我是 Docker/Kubernetes 世界的新手。

因为我刚刚开始使用整个架构,所以我有以下几点:

  • Azure 容器服务 -- 使用 Linux 为主服务器和代理程序启动并运行
  • Docker for windows 在我的机器上——启动并运行
  • 使用 Docker 任务在 VSTS 上自动构建 .NetCore 应用程序以构建映像并将其推送到 Azure 容器注册表
  • Kubectl 以及从主节点运行的 kubernetes UI

当使用 Docker 命令从我的机器构建 .NetCore 应用程序然后将其发布到注册表时,Kubernetes 能够拉取并运行它,但是当通过 VSTS 构建任务构建和推送映像时,kubernetes 无法执行拉图像。在对错误进行了一些研究之后,结果发现来自 VSTS 构建的图像是为 windows 制作的,因此无法拉取。

Docker Container for Windows 和 Linux 有什么区别,我们如何在构建镜像时转换或指定类型。

【问题讨论】:

    标签: linux azure docker azure-devops dockerfile


    【解决方案1】:

    Docker Container for Windows 和 Linux 有什么区别。

    简而言之,Linux docker 在 Linux 上运行并使用 Linux 内核,Windows docker 在 windows server 2016 或 windows 10 上运行,使用 windows 超虚拟化,并请求windows dll 和其他软件包。

    所以我们不能在 Linux docker 上运行 windows docker 镜像。

    我们如何在构建图像时转换或指定类型。

    据我所知,我们无法将 docker 映像转换为另一种类型。

    我们可以使用VSTS来构建.NET core Linux Docker镜像,请参考这个blog

    另外,我们可以使用不同的docker平台使用Docker file来构建docker镜像。

    更多关于如何使用 docker 文件构建 windows docker 镜像的信息,请参考这个blog
    更多关于如何使用 docker 文件构建 Linux docker 镜像的信息,请参考这个article

    创建 docker 镜像后,我们可以按照这个 articlepushpull 一个来自 Azure 容器注册表的镜像。

    【讨论】:

    • 另外值得注意的是,Windows 可以运行 Linux 容器。
    猜你喜欢
    • 2020-12-06
    • 2019-12-15
    • 2017-04-21
    • 2022-01-27
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2019-12-10
    相关资源
    最近更新 更多