Windows docker容器与Linux docker容器

Windows docker容器与Linux docker容器,linux,azure,docker,azure-devops,dockerfile,Linux,Azure,Docker,Azure Devops,Dockerfile,总的来说,我对Docker/Kubernetes的世界还不熟悉 由于我刚刚从整个体系结构开始,我有以下几点: Azure容器服务——使用Linux为主服务器和代理安装并运行 我的机器上的windows Docker--启动并运行 使用Docker任务在VST上自动生成.NetCore应用程序,以生成映像并将其推送到Azure容器注册表 Kubectl与来自主节点的kubernetes UI一样运行 当使用Docker命令从我的机器构建.NetCore应用程序,然后将其发布到注册表时,Kube

总的来说,我对Docker/Kubernetes的世界还不熟悉

由于我刚刚从整个体系结构开始,我有以下几点:

  • Azure容器服务——使用Linux为主服务器和代理安装并运行
  • 我的机器上的windows Docker--启动并运行
  • 使用Docker任务在VST上自动生成.NetCore应用程序,以生成映像并将其推送到Azure容器注册表
  • Kubectl与来自主节点的kubernetes UI一样运行
当使用Docker命令从我的机器构建.NetCore应用程序,然后将其发布到注册表时,Kubernetes能够拉取并运行该应用程序,但当映像由VSTS构建任务生成并推送时,Kubernetes无法拉取映像。在对错误进行了一点研究之后,发现来自VSTS构建的图像是为windows制作的,因此无法提取

Windows和Linux的Docker容器之间有什么区别,在构建映像时如何转换或指定类型

Windows和Linux的Docker容器有什么区别

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

因此,我们无法在Linux docker上运行windows docker映像

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

据我所知,我们无法将docker图像转换为其他类型

我们可以使用VSTS来构建.NET核心Linux Docker映像,请参考此

此外,我们还可以使用不同的docker平台使用
docker文件
来构建docker形象

有关如何使用docker文件构建windows docker映像的详细信息,请参阅此。
有关如何使用docker文件构建Linux docker映像的更多信息,请参阅此


创建docker映像后,我们可以按照此操作从Azure容器注册表中推送和拉取映像。