工具分享:检测内核配置是否支持Docker等容器

本帖最后由 Liuth 于 2021-12-3 14:36 编辑

使用Docker等容器需要CGROUP、BRIDGE等功能,如果Kernel中相关配置没有打开,安装或运行Docker会出现各种错误。

Docker开源团队提供了一个脚本,可以检测Kernel配置是否符合Docker的运行要求

源地址:moby/contrib/check-config.sh at master · moby/moby · GitHub

可以使用wget直接下载或者下载附件 check-config.zip (4.13 KB)

wget https://github.com/moby/moby/raw/master/contrib/check-config.sh

拷贝到目标平台直接运行脚本:

chmod +x check-config.sh
./check-config.sh

也可以在其他位置指定config文件:

./check-config.sh config_file

得到的输出结果如下:

Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- apparmor: enabled and tools installed
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_CGROUPS: enabled
......

Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: enabled
- CONFIG_SECCOMP_FILTER: enabled
- CONFIG_CGROUP_PIDS: enabled
- CONFIG_MEMCG_SWAP: enabled
......

结果主要是两部分,Generally Necessary: 表示必要的配置,如果有显示missing的地方,需要在内核配置中打开,重新编译烧录内核以支持Docker
Optional Features: 是可选配置,根据需要打开。

这里也提供一个RK356X的已经开启全部Docker必要/可选配置(build-in方式)的config文件:firefly_linux_docker_defconfig.zip (4.36 KB)

{:4_211:}

{:4_171:}

下载重复扣积分,哭了

灯泡怎么搞

Thanks for sharing~~~

Thanks for sharing~~~

firefly_linux_docker_defconfig.zip 这个文件下载不了

a343188433 发表于 2022-1-5 13:53
firefly_linux_docker_defconfig.zip 这个文件下载不了

可以下载,没问题啊

感謝分享~~~~

fujunxu 发表于 2021-12-30 21:24
灯泡怎么搞

签到

{:4_89:}

4.4内核 始终少一个 CONFIG_CGROUP_BPF: missing

fatboyslimww 发表于 2022-3-7 16:04
4.4内核 始终少一个 CONFIG_CGROUP_BPF: missing

CGROUP_BPF 依赖 BPF_SYSCALL,你是不是 BPF_SYSCALL 没开启?

Liuth 发表于 2022-3-8 11:18
CGROUP_BPF 依赖 BPF_SYSCALL,你是不是 BPF_SYSCALL 没开启?

嗯 这个确认已经开启了 ,menuconfig就是搜不到 CGROUP_BPF

附件内容如何查看?

这个文档很有用

warning: /proc/config.gz does not exist, searching other paths for kernel config …
error: cannot find kernel config
try running this script again, specifying the kernel config:
CONFIG=/path/to/kernel/.config ./check-config.sh or ./check-config.sh /path/to/kernel/.config
请问下这个报错怎么破

karl-majors 发表于 2022-3-19 17:58
warning: /proc/config.gz does not exist, searching other paths for kernel config …
error: cannot …

在SDK/kernel中 make ARCH=arm64 firefly_linux_defconfig (架构和默认配置文件根据你的板型修改)
然后将SDK/kernel/.config 文件放入板子,和check-config.sh放一起
再执行 ./check-config.sh .config

Liuth 发表于 2022-3-21 09:05
在SDK/kernel中 make ARCH=arm64 firefly_linux_defconfig (架构和默认配置文件根据你的板型修改)
然后 …

官方有可以使用docker的img嘛 应用开发 被个内核整不明白了