dockerd命令中--containerd参数作用是什么?省略后有什么影响?
--containerd=/run/containerd/containerd.sock 参数作用 该参数用于显式指定 Docker 守护进程dockerd对接的底层容器运行时 containerd 的 Unix 套接字路径。Docker 本身不直接处理容器生命周期管理、镜像存储、运行时沙盒调度等底层操作,这部分能力全部由 containerd 提供,因此dockerd启动时必须和 containerd 进程建立通信,该参数就是明确告知dockerd要访问的 containerd 通信入口路径。
省略该参数的影响
默认配置下,如果你不显式指定--containerd参数,dockerd会自动向默认路径/run/containerd/containerd.sock发起连接请求,所以只要你的 containerd 是使用官方默认配置安装、通信套接字确实存放在默认路径,省略该参数不会直接导致功能异常。仅在以下两种场景会出现问题:
- 你自定义修改了 containerd 的配置,将通信套接字存放到了非默认路径,此时
dockerd无法找到 containerd 进程,会直接启动失败 - 系统中安装了多个版本的 containerd 实例,存在多个不同路径的通信套接字,省略参数可能导致
dockerd对接错误的 containerd 实例,出现镜像、容器数据不一致的异常
场景适配性评估
你需要的本地操作、TLS 保护的远程访问、SSH 调用 Docker 守护进程三个场景,核心都和dockerd的监听地址配置相关,和--containerd参数没有关联:
- 本地场景默认会监听
/var/run/docker.sockUnix 套接字,只要dockerd正常启动即可正常使用 - 开启 TLS 保护的远程访问只需要在
ExecStart配置中追加 TLS 相关监听参数即可,和 containerd 对接配置无关 - SSH 调用 Docker 守护进程本质是调用对端服务器本地的
/var/run/docker.sock,也不受该参数影响
只要你的 containerd 通信套接字存放在默认路径,当前省略--containerd参数的配置完全可以满足你的所有需求,不需要额外调整。
内容的提问来源于stack exchange,提问作者krave
相关产品推荐
相关产品推荐

