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

Docker实验模式无法同时运行Windows与Linux容器?求解决方案

恢复Windows 10上Docker同时支持Windows和Linux容器的状态

我之前在Windows 10 22H2主机上,借助Docker的experimental特性可以并行运行Windows和Linux容器。但新配置的电脑(安装Docker Desktop 24.0.2)上这个功能失效了——现在只能手动切换Windows/Linux容器模式来运行对应实例,切换到Windows容器模式并启用experimental mode、重启服务后,仍然无法运行Linux容器。

当前docker info输出

Client:
 Version:    24.0.2
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.11.0
    Path:     C:\\Program Files\\Docker\\cli-plugins\\docker-buildx.exe
  compose: Docker Compose (Docker Inc.)
    Version:  v2.19.1
    Path:     C:\\Program Files\\Docker\\cli-plugins\\docker-compose.exe
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     C:\\Program Files\\Docker\\cli-plugins\\docker-dev.exe
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.20
    Path:     C:\\Program Files\\Docker\\cli-plugins\\docker-extension.exe
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v0.1.0-beta.6
    Path:     C:\\Program Files\\Docker\\cli-plugins\\docker-init.exe
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     C:\\Program Files\\Docker\\cli-plugins\\docker-sbom.exe
  scan: Docker Scan (Docker Inc.)
    Version:  v0.26.0
    Path:     C:\\Program Files\\Docker\\cli-plugins\\docker-scan.exe
  scout: Command line tool for Docker Scout (Docker Inc.)
    Version:  0.16.1
    Path:     C:\\Program Files\\Docker\\cli-plugins\\docker-scout.exe

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 2
 Server Version: 24.0.2
 Storage Driver: windowsfilter
  Windows:
 Logging Driver: json-file
 Plugins:
  Volume: local
  Network: ics internal l2bridge l2tunnel nat null overlay private transparent
  Log: awslogs etwlogs fluentd gcplogs gelf json-file local logentries splunk syslog
 Swarm: inactive
 Default Isolation: hyperv
 Kernel Version: 10.0 19045 (19041.1.amd64fre.vb_release.191206-1406)
 Operating System: Microsoft Windows Version 22H2 (OS Build 19045.3086)
 OSType: windows
 Architecture: x86_64
 CPUs: 8
 Total Memory: 31.88GiB
 Name: GEO-HjiS1MTZvp3
 ID: dae2db1c-70b5-49bf-ba37-476db299acd7
 Docker Root Dir: C:\\ProgramData\\Docker
 Debug Mode: true
  File Descriptors: -1
  Goroutines: 40
  System Time: 2023-07-07T13:57:03.2730227+02:00
  EventsListeners: 4
 Experimental: true
 ...

运行Linux容器时报错

C:\\work\\build>docker run mcr.microsoft.com/mssql/server:2019-latest --platform linux
Unable to find image 'mcr.microsoft.com/mssql/server:2019-latest' locally
2019-latest: Pulling from mssql/server
docker: image operating system "linux" cannot be used on this platform: operating system is not supported.
See 'docker run --help'.

正常工作时的docker info输出

C:\\Users\\grap>docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Build with BuildKit (Docker Inc., v0.6.3)
  compose: Docker Compose (Docker Inc., v2.0.0)
  scan: Docker Scan (Docker Inc., v0.8.0)

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 33
 Server Version: 20.10.9
 Storage Driver: windowsfilter (windows) lcow (linux)
  Windows:
  LCOW:
 Logging Driver: json-file
 Plugins:
  Volume: local
  Network: ics internal l2bridge l2tunnel nat null overlay private transparent
  Log: awslogs etwlogs fluentd gcplogs gelf json-file local logentries splunk syslog
 Swarm: inactive
 Default Isolation: hyperv
 Kernel Version: 10.0 19044 (19041.1.amd64fre.vb_release.191206-1406)
 Operating System: Windows 10 Enterprise Version 2009 (OS Build 19044.3086)
 OSType: windows
 Architecture: x86_64
 CPUs: 12
 Total Memory: 31.78GiB
 Name: ...
 ID: TNQG:YHL6:UHXO:BR24:A4NC:4ECA:JTOW:SLMF:AYLF:TJFM:HC7R:LXDA
 Docker Root Dir: D:\\ProgramData_Docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: true
 ...

核心问题

当前Docker仅加载了windowsfilter存储驱动,而正常工作时同时存在windowsfilter和lcow(Linux Containers on Windows)驱动,导致无法在Windows容器模式下运行Linux容器。

解决步骤

1. 调整Docker Desktop基础设置

  • 打开Docker Desktop设置,进入Features in development:
    • 取消勾选Use the WSL 2 based engine(LCOW基于Hyper-V,与WSL2引擎互斥)
    • 确保Experimental features已勾选
  • 点击Apply & Restart保存设置

2. 手动配置Docker daemon启用LCOW

编辑C:\ProgramData\Docker\config\daemon.json文件,添加以下配置:

{
  "experimental": true,
  "storage-driver": "windowsfilter",
  "lcow": {
    "enabled": true
  }
}

保存文件后,右键点击任务栏Docker图标选择Restart,或通过PowerShell执行命令重启服务:

Restart-Service Docker

3. 验证配置生效

重启后执行docker info,检查Server部分的Storage Driver是否显示windowsfilter (windows) lcow (linux),出现则说明LCOW驱动已加载。

4. 测试Linux容器运行

注意--platform参数的正确位置(需放在镜像名之前):

docker run --platform linux mcr.microsoft.com/mssql/server:2019-latest

5. 排查常见异常

  • 检查Windows功能是否开启Hyper-V和Containers:打开控制面板 -> 程序 -> 启用或关闭Windows功能,勾选后重启电脑
  • 若新版本兼容性问题无法解决,可尝试降级到之前正常工作的Docker版本(如20.10.9)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 17:44:52