【发布时间】:2017-05-28 02:17:27
【问题描述】:
我正在运行这个
docker run --rm --name mydocker --privileged \
-v /sys:/sys:ro \
-v /dev:/dev \
--stop-signal=SIGRTMIN+3 \
-p 8080:8080 \
-p 5005:5005 \
-p 8443:8443 \
--net=host \
--cap-drop=SYS_BOOT \
/usr/sbin/init
它应该作为 init 运行 systemd 并从中删除 SYS_BOOT 功能。这是彻底关闭容器所必需的。当如上运行时,它确实以 pid 1 运行 systemd init,但该功能不会被删除:
[root@FK8CDFA9A82A9E7-A /]# cat /proc/1/status | grep Cap
CapInh: 0000003fffffffff
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
当 SYS_BOOT 功能被删除时,它应该如下所示:
CapInh: 0000003fffbfffff
CapPrm: 0000003fffbfffff
CapEff: 0000003fffbfffff
CapBnd: 0000003fffbfffff
CapAmb: 0000000000000000
任何想法为什么这不起作用? Docker 版本:
客户:
版本:1.12.3
API 版本:1.24
Go 版本:go1.6.3
Git 提交:34a2ead
建成:
操作系统/架构:linux/amd64
服务器:
版本:1.12.3
API 版本:1.24
Go 版本:go1.6.3
Git 提交:34a2ead
建成:
操作系统/架构:linux/amd64
【问题讨论】:
标签: docker systemd linux-capabilities