You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows Server 2022上无需登录持久运行Linux Docker容器

解决Windows Server 2022下dockerd服务运行Linux容器的问题

核心问题

你创建的dockerd Windows服务默认启用Windows容器引擎,但Linux容器需要依赖WSL2/Hyper-V虚拟化后端,且服务需显式配置为Linux模式运行——这就是你无法通过服务创建Linux容器的原因。

解决步骤

1. 确认虚拟化后端状态

由于你登录账户下可正常运行Linux容器,只需快速验证:

  • WSL2:执行 wsl --list --verbose,确认存在已安装的Linux发行版且版本为2;
  • Hyper-V:确认Windows Server已安装Hyper-V角色,且虚拟机平台功能启用。

2. 配置dockerd服务为Linux模式

方式1:通过daemon.json配置

编辑(无则创建)C:\ProgramData\docker\config\daemon.json,根据虚拟化后端添加对应配置:

  • WSL2后端:
{
  "storage-driver": "overlay2",
  "data-root": "\\\\wsl$\\<你的WSL发行版名称>\\var\\lib\\docker",
  "hosts": ["npipe:////./pipe/docker_engine"],
  "default-runtime": "runc"
}

替换<你的WSL发行版名称>为实际名称(如Ubuntu-22.04)。

  • Hyper-V后端:
{
  "storage-driver": "windowsfilter",
  "data-root": "C:\\ProgramData\\docker\\linux-data",
  "hosts": ["npipe:////./pipe/docker_engine"],
  "default-runtime": "runhcs"
}

方式2:修改服务启动参数

直接调整dockerd服务的启动命令(管理员权限执行):

sc config dockerd binPath= "\"C:\Program Files\Docker\Docker\resources\dockerd.exe\" --run-service --storage-driver=overlay2 --data-root=\\\\wsl$\\<你的WSL发行版名称>\\var\\lib\\docker"
sc stop dockerd && sc start dockerd

3. 验证配置

执行 docker info,检查输出中OSType是否为linux、Storage Driver是否匹配配置。随后测试运行Linux镜像:

docker run hello-world

4. 权限检查

若dockerd服务使用自定义账户,需确保该账户:

  • 拥有WSL2/Hyper-V的访问权限(可加入Administrators组);
  • 对docker数据目录有读写权限。

内容的提问来源于stack exchange,提问作者CaptainInler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:35:23