我正在第一次安装 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。