淺談docker --privileged=true參數(shù)作用
大約在0.6版,privileged被引入docker。
使用該參數(shù),container內(nèi)的root擁有真正的root權(quán)限。
否則,container內(nèi)的root只是外部的一個(gè)普通用戶權(quán)限。
privileged啟動(dòng)的容器,可以看到很多host上的設(shè)備,并且可以執(zhí)行mount。
甚至允許你在docker容器中啟動(dòng)docker容器。
$ docker help run ... --privileged=false Give extended privileges to this container ...
這里以一個(gè)Mysql 例子
我們啟動(dòng)命令還沒(méi)加 --privileged=true 參數(shù) ,可以明確看到docker 嘗試去運(yùn)行容器,但是馬上就關(guān)閉了。
命令
docker run --name mysql-test -e MYSQL_ROOT_PASSWORD=123456 -p 9092:3306 -d daocloud.io/library/mysql:5.7.6
嘗試使用一些命令,提示permission denied,權(quán)限禁止

加入?yún)?shù)命令后
docker run --name mysql-test --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -p 9092:3306 -d daocloud.io/library/mysql:5.7.6
成功運(yùn)行命令
未設(shè)置privileged啟動(dòng)的容器:
[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
設(shè)置privileged啟動(dòng)的容器:
[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 /]#
到此這篇關(guān)于淺談docker --privileged=true參數(shù)作用的文章就介紹到這了,更多相關(guān)docker --privileged=true內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker和虛擬機(jī)的區(qū)別及說(shuō)明
Docker與虛擬機(jī)(VM)主要差異在于實(shí)現(xiàn)方式及效率,Docker通過(guò)打包應(yīng)用及其依賴于容器中,直接與操作系統(tǒng)內(nèi)核交互,實(shí)現(xiàn)跨系統(tǒng)運(yùn)行,而無(wú)需模擬整個(gè)操作系統(tǒng),這使得Docker在體積、啟動(dòng)速度及性能上優(yōu)于虛擬機(jī),虛擬機(jī)通過(guò)模擬硬件環(huán)境2024-11-11
docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn)
有時(shí)候使用Docker Hub這樣的公共倉(cāng)庫(kù)可能不方便,這種情況下用戶可以使用registry創(chuàng)建一個(gè)本地倉(cāng)庫(kù)供私人使用,本文主要介紹了docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12
Docker開啟安全的TLS遠(yuǎn)程連接訪問(wèn)方式
本篇文章給大家介紹Docker開啟安全的TLS遠(yuǎn)程連接,重新加載docker配置方法,教大家如何建立基于TLS數(shù)字簽名的安全連接,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01
Docker為網(wǎng)絡(luò)bridge模式指定容器ip的方法
Docker在創(chuàng)建容器時(shí)有四種網(wǎng)絡(luò)模式,bridge為默認(rèn)不需要用--net去指定,其他三種模式需要在創(chuàng)建容器時(shí)使用--net去指定。那Docker為網(wǎng)絡(luò)bridge模式指定容器ip該如何實(shí)現(xiàn)呢?下面通過(guò)通過(guò)這篇文章一起看看吧,文中給出了詳細(xì)的示例代碼,有需要的可以參考借鑒。2016-11-11

