Docker的privileged的作用

本文介绍了Docker容器如何通过privileged参数获取宿主机的root权限。未设置privileged时,容器内的root权限受限,无法执行如mount等操作。而启用privileged参数后,容器内的root可以访问更多设备并执行挂载操作,实现与宿主机相似的权限。这展示了privileged参数在特定场景下的重要性。
摘要由CSDN通过智能技术生成

Docker 应用容器 获取宿主机root权限(特殊权限)

docker run -d --name="centos7" --privileged=true centos:7

privileged参数

大约在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 /]# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值