Docker: Windows容器能运行在Linux上吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker: Windows容器能运行在Linux上吗相关的知识,希望对你有一定的参考价值。

参考技术A 这是我的一大疑惑,就是不知道怎么表述,我搜索“why docker for windows can run on linux”,没找到什么信息。

windows毕竟和linux有完全不同的内核,我不清楚为什么可以在Windows上调试Container,这样的Container岂不是只能运行在Windows内核上吗,也就没有平台无关和可迁移的特性了。我觉得没什么人想把Container部署在Windows机器上吧。

我按图索骥,先找到一些Docker和VM对比的问题:

Docker frequently asked questions (FAQ) | Docker Documentation
containers - How is Docker different from a virtual machine? - Stack Overflow

接着顺着高票的相关问题,找到了我想要的问题页面。

docker - Can Windows Containers be hosted on linux? - Stack Overflow

接着找到这篇非常非常棒的文章:

Docker ❤️ WSL 2 - The Future of Docker Desktop for Windows - Docker Blog

最终我的疑惑终于解决了:

在安装Docker for windows软件的时候,可以选择Linux Container或Windows Container,默认我们会使用Linux Container。

这个时候,Docker就会利用上文描述的WSL 2,将Container启动在Windows提供的Linux内核上。所以我安装的时候需要把windows功能里的WSL 2选项打开。

而在此之前,Docker自己写了个虚拟机去跑Container,现在有了WSL,就不需要自己写虚拟机了。

如果选择Windows Container,那么所创建的image就不能跑在Linux上了。

Docker for mac only have "Linux Container" option, there is no such thing as mac container.

you can run Linux containers on your Mac using Docker for Mac. This works by seamlessly running your containers inside of a lightweight Linux VM on your Mac.

以上是关于Docker: Windows容器能运行在Linux上吗的主要内容,如果未能解决你的问题,请参考以下文章

可以在docker容器里跑windows么

可以在docker容器里跑windows么

docker入门引导

Docker打包 Asp.Net Core应用,在CentOS上运行

在 Windows 的 Docker 容器中运行测试容器

Docker可视化容器管理工具之Portainer