上下文
我正在使用具有以下版本的Windows 11专业版计算机:
C:\Users>ver
Microsoft Windows [Version 10.0.22621.1992]
字符串
我正在Windows容器模式下使用 Docker Desktop,我想使用以下命令启动一个带有--isolation=process
的Windows容器
docker run -it --rm --name container_name -v .:c:/localroot --isolation=process image_name
型
问题
使用进程隔离模式时,主机操作系统版本与容器映像操作系统版本匹配至关重要。我在Docker Hub上搜索过,特别是Microsoft Windows page,但只能找到Windows 10镜像。
**Microsoft没有发布与Windows主机版本10.0.22621.1992对应的Docker镜像是否有特定原因?**另外,有没有人知道一个合适的图像或解决方法?
Docker为什么选择进程隔离模式
源代码驻留在主机上,我的目标是在容器中编译它。我在构建过程中使用了scons,这是一个I/O密集型的过程。通过广泛的测试,我观察到当容器在hyperv隔离模式下运行时,构建过程要么非常缓慢,要么偶尔会完全失败。通过使用进程隔离模式,容器和主机共享同一内核。我相信这种方法可以提高构建效率。
谢谢你的好意
1条答案
按热度按时间8yoxcaq71#
10.0.22621.1992是12天前的W11 22 H2。可能还是有点太新鲜了。
其次,通常为Microsoft Windows Server containers提供容器,如
microsoft/Windows-Containers
/issue 117中所讨论的另一种方法是使用Windows Server 2022 image,如
containerd/containerd
PR 8137中所要求的Windows 11客户端支持运行10.0.20348及更高版本的进程隔离容器。或者换句话说,Windows 11客户端可以运行Windows Server 2022容器,即使它们的内部版本号不匹配。Docker引擎已经支持这种场景;此更改更新了containerd,使其也支持此场景。
容器/OS版本兼容性页面记录了客户端OS和服务器OS版本之间的这种兼容性级别。
但在您的情况下,主机操作系统版本不会与容器映像操作系统版本完全匹配