apt-get 说 apparmor 已安装,但 Docker 内核兼容性检查显示未安装

apt-get 说 apparmor 已安装,但 Docker 内核兼容性检查显示未安装

我正在第一次安装 Docker。

在官方文档中,位于这点,它说我应该下载并运行一个脚本(check-config.sh)来测试我的系统是否具有 Docker 所需的所有东西。

当我(作为用户)运行脚本时docker,它会输出按重要性分类的依赖项列表。在“一般必要”(最重要的)下列出的要求中,它说我唯一缺少的要求是apparmor_parser

- apparmor: enabled, but apparmor_parser missing
    (use "apt-get install apparmor" to fix this)

sudo apt-get update但是当我跑步时sudo apt-get install apparmor我得到了这个:

$ sudo apt-get install apparmor
Reading package lists... Done
Building dependency tree       
Reading state information... Done
apparmor is already the newest version (2.10.95-0ubuntu2.9).
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.

我看到的所有其他证据都表明安装了 apparmor:cat /sys/module/apparmor/parameters/enabled返回Y,并docker run hello-world输出一些合理的内容。

脚本的相关部分check-config.sh如下所示:

if command -v apparmor_parser &> /dev/null; then
        echo "$(wrap_good 'apparmor' 'enabled and tools installed')"
else
        echo "$(wrap_bad 'apparmor' 'enabled, but apparmor_parser missing')"
        ...

我不知道什么command -v apparmor_parser意思。当我运行它时,我没有任何输出。

我担心如果apparmor没有安装,或者安装了但 Docker 不知道在哪里找到它,我最终可能会运行缺少安全功能的 Docker。我应该怎么办?

Linux版本等:

$ uname -srvmpio
Linux 4.13.0-39-generic #44~16.04.1-Ubuntu SMP Thu Apr 5 16:43:10 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

更新:

apparmor_parser位于 中/sbin/,因此脚本找不到它。当我运行时PATH=$PATH:/sbin ./check-config.sh它似乎有效。但当我跑步时,/sbin/apparmor_parser我得到了apparmor_parser: Sorry. You need root privileges to run this programme.。当我运行时,sudo apparmor_parser我得到了Warning from stdin (line 1): apparmor_parser: cannot use or update cache, disable, or force-complain via stdin(并且它不会终止,直到我按 Ctrl+C)。所以在我看来,它似乎仍然不起作用。我不想以 root 身份运行 Docker。

相关内容