作者:【吴业亮】

博客:https://wuyeliang.blog.csdn.net/

privileged参数

$ docker help run 
...
--privileged=false         Give extended privileges to this container
...

大约在0.6版,privileged被引入docker。
使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
甚至允许你在docker容器中启动docker容器。

未设置privileged启动的容器:

[root@localhost ~]# docker run -t -i centos:latest bash
[root@ed8fee643129 /]# lsblk 
lsblk: dm-0: failed to get device path
lsblk: dm-1: failed to get device path
lsblk: dm-0: failed to get device path
lsblk: dm-1: failed to get device path
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    252:0    0   80G  0 disk 
|-vda1 252:1    0    1G  0 part 
`-vda2 252:2    0   79G  0 part 
vdb    252:16   0  200G  0 disk 
|-vdb1 252:17   0   50G  0 part 
|-vdb2 252:18   0   50G  0 part 
`-vdb3 252:19   0  100G  0 part 
[root@ed8fee643129 /]# mount  /dev/vdb3  /mnt/
mount: permission denied

设置privileged启动的容器:

[root@docker ~]# docker run -t -i  --privileged  centos:latest bash
[root@f83ce3877aa1 /]# 
[root@f83ce3877aa1 /]# 
[root@f83ce3877aa1 /]# mount  /dev/vdb3  /mnt/
[root@f83ce3877aa1 /]# df -h
Filesystem               Size  Used Avail Use% Mounted on
overlay                   77G   25G   52G  33% /
tmpfs                     64M     0   64M   0% /dev
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root   77G   25G   52G  33% /etc/hosts
shm                       64M     0   64M   0% /dev/shm
/dev/vdb3                100G   33M  100G   1% /mnt
[root@f83ce3877aa1 /]# 
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐