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

WSL2中Docker使用containerd时配置文件不生效问题排查

问题描述

在WSL 2环境中安装Docker Engine后,将containerd二进制文件设置为默认运行时。启动dockerd二进制文件时,系统不会自动加载/etc/docker/daemon.json与/etc/containerd/config.toml两个配置文件。

已尝试的处理方案
  • 针对daemon.json不自动加载的问题,通过创建命令别名的方式指定配置文件路径,别名配置如下:
alias dockerd='sudo dockerd --config-file=/etc/docker/deamon.json'

执行dockerd命令时,该别名可以让守护进程读取指定的daemon.json配置,但始终无法找到让dockerd守护进程向containerd进程传递对应配置文件路径的方法。

当前使用的daemon.json完整配置如下:

{
  "default-runtime": "containerd",
  "hosts": ["unix:///var/run/docker.sock"],
  "runtimes": {
    "containerd": {
      "path": "/usr/bin/containerd"
    }
  }
}
  • 尝试在配置中添加runtimeArgs参数传入containerd配置路径,该方案未生效,对应配置片段如下:
"containerd": {
  "path": "/usr/bin/containerd",
  "runtimeArgs": [
    "-c=/etc/containerd/config.toml"
  ]
}

配置失效原因推测

containerd对参数传入顺序有明确要求:

containerd [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]

--config(简写为-c)属于containerd的全局选项,如果Docker引擎将该参数放在命令末尾传入,配置文件就会被忽略。

最优解决方向是查明默认配置文件无法被自动加载的根本原因,因暂未找到相关明确诱因,目前在探索手动传入配置文件的实现方式。

当前运行环境信息
  • Docker版本信息:
$ docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:02:46 2022
 OS/Arch:           linux/amd64
 Context:           linux
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:00:51 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
  • containerd版本信息:
$ containerd --version
containerd containerd.io 1.6.6 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
  • 系统内核信息:
$ uname -a
Linux DESKTOP-A9K3QEG 5.10.102.1-microsoft-standard-WSL2 #1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
  • 系统发行版信息:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04 LTS"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:36:08