Windows Server 2022 上的 Linux Docker 容器

3

我想在 Windows Server-2022 上运行 Linux Docker 容器,而无需登录到 Windows 并启动 Docker Desktop。 我成功创建了 一个 dockerd 的 Windows 服务。但是我无法创建 Linux 容器,出现错误信息:

docker: image operating system "linux" cannot be used on this platform.

由于Docker作为Windows服务运行,我无法使用dockerCLI更改引擎,或者我不知道如何更改。此解决方案可以更改我的Windows用户的引擎,但不能更改Windows服务的引擎。在我的Windows用户上,我可以轻松运行Linux容器。

我的问题是:如何在Windows Server 2022上永久运行Linux Docker容器,而无需登录Windows?


这并不是一个编程问题。你并没有问如何“在Windows上无需登录永久运行Linux Docker容器”,而是在生产环境中如何使用Linux Docker容器。虽然这不受支持,但仍然是*可能的。你提供的文章显示可以使用dockerd --register-service将Docker注册为服务。Linux容器在WSL2上运行,因此必须安装它。不过这仍然主要用于测试。 - Panagiotis Kanavos
1
重要的部分是WSL2,而不是Docker本身。您已经可以在虚拟机中运行Linux并在其中运行Docker。直接使用Docker的唯一原因是因为您想在WSL2上运行容器。因此,真正的问题是如何使WSL在没有任何人登录的情况下继续运行。完成这个步骤后,如果需要,您可以在WSL2中安装Docker。 - Panagiotis Kanavos
@PanagiotisKanavos 谢谢你的回复,并向我指出真正的问题:“如何在没有任何人登录的情况下保持WSL运行”。这非常有道理。我不明白的是,为什么Docker可以被注册为服务,但不能在没有登录的情况下使用?这在Windows 11上很合理,但在通常没有任何人登录的服务器版本上呢? - CaptainInler
@PanagiotisKanavos 我必须使用Windows服务器(不是我的决定),而我需要使用这个软件,其中一个Docker镜像非常适合,但无法(轻松地)在Windows上安装。Hyper-V意味着我必须先安装Linux-VM(在virtualbox上?)才能在那里安装Docker? - CaptainInler
Hyper-V是Windows Server的本地虚拟化技术,相当于VMWare。它比VirtualBox更深入,因此速度更快,甚至可以在裸机上运行。它是支持WSL和Docker桌面的相同技术,并且比VirtualBox快得多。这个Docker文档页面展示了如何告诉Docker使用Hyper-V来运行docker主机而不是WSL。在WSL之前,Docker本身使用Hyper-V VM。与VMWare(以及某些VirtualBox捆绑包)一样,它提供监视、集群等功能。 - Panagiotis Kanavos
显示剩余3条评论
1个回答

2

谢谢提供链接。我之前看过这个,但它没有解释如何在没有任何人登录的情况下保持WSL2运行。 - CaptainInler
您是否考虑使用gMSA运行服务? - abo
我没有这样做,因为我还不知道这件事。 - CaptainInler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接