概述
由于docker容器的隔离是基于Linux的Capability机制实现的, Linux的Capability机制允许你将超级用户相关的高级权限划分成为不同的小单元. 目前Docker容器默认只用到了以下的Capability
CHOWN,
DAC_OVERRIDE,
FSETID,
FOWNER,
MKNOD,
NET_RAW,
SETGID,
SETUID,
SETFCAP,
SETPCAP,
NET_BIND_SERVICE,
SYS_CHROOT,
KILL,
AUDIT_WRITE
因此想要更高的权限,就需要在docker run
时使用--privileged
或--cap-add
参数。
-
docker
使用--privileged
、--cap-add
、--cap-drop
来对容器本身的能力进行开放或限制,使用--cap-add
、--cap-drop
可以添加或禁用特定的权限; -
--privileged
参数也可以达到开放权限的作用, 与--cap-add
的区别就是,--privileged
是将所有权限给容器;
–privileged
docker
官网对--privileged
的解释:
--privileged Give extended privileges to this container
–cap-add、–cap-drop
--cap-add Add Linux capabilities
--cap-drop Drop Linux capabilities