必须同时开启 docker cli 和 daemon 的实验性特性才能使用 manifest、--platform、buildx 等功能;cli 配置为 ~/.docker/config.json 中 "experimental": "enabled",daemon 配置为 /etc/docker/daemon.json 中 "experimental": true,并重启服务。

要让 Docker 支持 docker manifest、--platform 拉取/构建、buildx 等高级功能,必须同时开启 CLI 和 daemon 两层实验性特性。只开一边,命令会报错,比如 “--platform is only supported on a Docker daemon with experimental features enabled”。
启用 Docker CLI 实验性功能
这是运行 docker manifest、docker buildx 等命令的前提。
- 编辑用户配置文件:
~/.docker/config.json,确保内容包含"experimental": "enabled"(注意是字符串 "enabled",不是布尔值) - 如果文件不存在,先创建目录:
mkdir -p ~/.docker - 保存后新开终端即可生效,无需重启 Docker 客户端
- 临时启用可用环境变量:
Linux/macOS:export DOCKER_CLI_EXPERIMENTAL=enabled
Windows PowerShell(当前会话):$env:DOCKER_CLI_EXPERIMENTAL="enabled"
启用 Docker Daemon 实验性功能
这是底层支持的关键,影响 --platform、BuildKit 高级构建、多架构镜像等能力。
- 编辑守护进程配置:
/etc/docker/daemon.json(Linux/macOS),添加"experimental": true(注意是布尔值 true,不是字符串) - 如果文件为空或不存在,直接写入完整 JSON,例如:
{"experimental": true};已有其他配置则在对象内补上字段,注意逗号分隔 - 重启 Docker 服务使配置生效:
sudo systemctl restart docker - 验证是否成功:
docker info | grep -i "experimental",输出应为Experimental: true
常见问题与确认方式
即使配置完成,也建议做两步检查:
- 运行
docker version,确认 Client 和 Server 的Experimental字段都显示enabled或true - 尝试执行一个依赖实验特性的命令,比如:
docker manifest inspect --insecure hello-world,不报错即说明 CLI + daemon 均已就绪 - 若用 Docker Desktop,也可通过设置 → Command Line → 启用 “Enable experimental features” 切换(本质仍是自动写入上述两个配置)
注意事项
实验性功能未经过生产环境充分验证,官方明确不推荐在生产系统中使用。
- 功能行为可能在版本间变动甚至被移除,升级前需查阅对应版本的变更日志
- 建议仅在开发、测试或 CI 环境中启用,避免影响线上稳定性
- 开启后如需关闭,只需将两个配置中的
experimental字段删掉或设为false/"disabled",再重启 daemon 即可











