浅谈docker --privileged=true参数作用

 更新时间:2020年12月14日 11:48:21   作者:妖四灵.Shuen  
这篇文章主要介绍了浅谈docker --privileged=true参数作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

大约在0.6版,privileged被引入docker。

使用该参数,container内的root拥有真正的root权限。

否则,container内的root只是外部的一个普通用户权限。

privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。

甚至允许你在docker容器中启动docker容器。

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

这里以一个Mysql 例子 

我们启动命令还没加   --privileged=true 参数 ,可以明确看到docker 尝试去运行容器,但是马上就关闭了。

命令

docker run --name mysql-test -e MYSQL_ROOT_PASSWORD=123456 -p 9092:3306 -d daocloud.io/library/mysql:5.7.6

尝试使用一些命令,提示permission denied,权限禁止 

加入参数命令后

docker run --name mysql-test --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -p 9092:3306 -d daocloud.io/library/mysql:5.7.6

 

成功运行命令

未设置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 /]# 

到此这篇关于浅谈docker --privileged=true参数作用的文章就介绍到这了,更多相关docker --privileged=true内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何将Docker的构建时间减少40%(推荐)

    如何将Docker的构建时间减少40%(推荐)

    这篇文章主要介绍了如何将Docker的构建时间减少40%,本文描述了我们在优化CI管道后获得的一些新见解,需要的朋友可以参考下
    2023-11-11
  • Docker 运行时的用户与组管理的方法

    Docker 运行时的用户与组管理的方法

    这篇文章主要介绍了Docker 运行时的用户与组管理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • CentOS7.6系统下Docker安装部署教程

    CentOS7.6系统下Docker安装部署教程

    这篇文章主要为大家介绍了CentOS7.6系统下Docker的安装部署教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • 使用 docker-compose 运行 MySQL的方法

    使用 docker-compose 运行 MySQL的方法

    这篇文章主要介绍了使用 docker-compose 运行 MySQL的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • docker安装tomcat dubbo-admin实例技巧

    docker安装tomcat dubbo-admin实例技巧

    在本篇文章里小编给大家整理的是关于docker安装tomcat dubbo-admin实例技巧,有需要的朋友们可以参考下。
    2020-01-01
  • 在Ubuntu上使用Grafana监控Docker的方法

    在Ubuntu上使用Grafana监控Docker的方法

    如今越来越多的公司开始使用Docker,一谈起Docker总是会跟着让人联想到轻量这个词,甚至会有一种通过Docker启动一个服务会节省很多资源的错觉。然而Docker的「轻」也只是相对于传统虚拟机而已。Docker如何监控呢?本文就给大家介绍在Ubuntu上如何使用Grafana监控Docker。
    2016-12-12
  • Docker-Compose搭建Redis集群的实现教程

    Docker-Compose搭建Redis集群的实现教程

    本文主要介绍了Docker-Compose搭建Redis集群的实现教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 使用Docker安装Nginx并配置端口转发问题及解决方法

    使用Docker安装Nginx并配置端口转发问题及解决方法

    这篇文章主要介绍了使用Docker安装Nginx并配置端口转发,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • 使用Docker容器搭建MySql主从复制

    使用Docker容器搭建MySql主从复制

    这篇文章主要介绍了使用Docker容器搭建MySql主从复制的相关资料,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • Docker中使用Nginx代理多个应用站点的方法

    Docker中使用Nginx代理多个应用站点的方法

    这篇文章主要介绍了Docker中使用Nginx代理多个应用站点的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论