亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Docker 運(yùn)行時(shí)的用戶(hù)與組管理

bigdevil_s / 3811人閱讀

摘要:雖然新命名空間與其他同級(jí)對(duì)象隔離但其父命名空間中的進(jìn)程仍會(huì)看到子命名空間中的所有進(jìn)程盡管具有不同的編號(hào)。命名空間允許更改主機(jī)名。裝載命名空間允許創(chuàng)建不同的文件系統(tǒng)布局或使某些裝入點(diǎn)為只讀。用戶(hù)命名空間將用戶(hù)通過(guò)命名空間隔離開(kāi)來(lái)。

docker 以進(jìn)程為核心, 對(duì)系統(tǒng)資源進(jìn)行隔離使用的管理工具. 隔離是通過(guò) cgroups (control groups 進(jìn)程控制組) 這個(gè)操作系統(tǒng)內(nèi)核特性來(lái)實(shí)現(xiàn)的. 包括用戶(hù)的參數(shù)限制、 帳戶(hù)管理、 資源(CPU,內(nèi)存,磁盤(pán)I/O,網(wǎng)絡(luò))使用的隔離等. docker 在運(yùn)行時(shí)可以為容器內(nèi)進(jìn)程指定用戶(hù)和組. 沒(méi)有指定時(shí)默認(rèn)是 root .但因?yàn)楦綦x的原因, 并不會(huì)因此喪失安全性. 傳統(tǒng)上, 特定的應(yīng)用都以特定的用戶(hù)來(lái)運(yùn)行, 在容器內(nèi)進(jìn)程指定運(yùn)行程序的所屬用戶(hù)或組并不需要在 host 中事先創(chuàng)建.

進(jìn)程控制組cgroups主要可能做以下幾件事:

資源限制 組可以設(shè)置為不超過(guò)配置的內(nèi)存限制, 其中還包括文件系統(tǒng)緩存

優(yōu)先級(jí) 某些組可能會(huì)獲得更大的 CPU 利用率份額或磁盤(pán) i/o 吞吐量

帳號(hào)會(huì)計(jì) 度量組的資源使用情況, 例如, 用于計(jì)費(fèi)的目的

控制 凍結(jié)組進(jìn)程, 設(shè)置進(jìn)程的檢查點(diǎn)和重新啟動(dòng)

與 cgroups(控制進(jìn)程組) 相關(guān)聯(lián)的概念是 namespaces (命令空間).
命名空間主要有六種名稱(chēng)隔離類(lèi)型:

PID 命名空間為進(jìn)程標(biāo)識(shí)符 (PIDs) 的分配、進(jìn)程列表及其詳細(xì)信息提供了隔離。

雖然新命名空間與其他同級(jí)對(duì)象隔離, 但其 "父 " 命名空間中的進(jìn)程仍會(huì)看到子命名空間中的所有進(jìn)程 (盡管具有不同的 PID 編號(hào))。

網(wǎng)絡(luò)命名空間隔離網(wǎng)絡(luò)接口控制器 (物理或虛擬)、iptables 防火墻規(guī)則、路由表等。網(wǎng)絡(luò)命名空間可以使用 "veth " 虛擬以太網(wǎng)設(shè)備彼此連接。

UTS 命名空間允許更改主機(jī)名。

mount(裝載)命名空間允許創(chuàng)建不同的文件系統(tǒng)布局, 或使某些裝入點(diǎn)為只讀。

IPC 命名空間將 System V 的進(jìn)程間通信通過(guò)命名空間隔離開(kāi)來(lái)。

用戶(hù)命名空間將用戶(hù) id 通過(guò)命名空間隔離開(kāi)來(lái)。

普通用戶(hù) docker run 容器內(nèi) root

如 busybox, 可以在 docker 容器中以 root 身份運(yùn)行軟件. 但 docker 容器本身仍以普通用戶(hù)執(zhí)行.
考慮這樣的情況

echo test | docker run -i busybox cat

前面的是當(dāng)前用戶(hù)當(dāng)前系統(tǒng)進(jìn)程,后面的轉(zhuǎn)入容器內(nèi)用戶(hù)和容器內(nèi)進(jìn)程運(yùn)行.

當(dāng)在容器內(nèi) PID 以1運(yùn)行時(shí), Linux 會(huì)忽略信號(hào)系統(tǒng)的默認(rèn)行為, 進(jìn)程收到 SIGINT 或 SIGTERM 信號(hào)時(shí)不會(huì)退出, 除非你的進(jìn)程為此編碼. 可以通過(guò) Dockerfile STOPSIGNAL signal指定停止信號(hào).

如:

STOPSIGNAL SIGKILL

創(chuàng)建一個(gè) Dockerfile

FROM alpine:latest
RUN apk add --update htop && rm -rf /var/cache/apk/*
CMD ["htop"]
$ docker build -t myhtop .  #構(gòu)建鏡像
$ docker run -it --rm --pid=host myhtop #與 host 進(jìn)程運(yùn)行于同一個(gè)命名空間

普通用戶(hù) docker run 容器內(nèi)指定不同用戶(hù) demo_user
docker run --user=demo_user:group1 --group-add group2  

這里的 demo_user 和 group1(主組), group2(副組) 不是主機(jī)的用戶(hù)和組, 而是創(chuàng)建容器鏡像時(shí)創(chuàng)建的.
當(dāng)Dockerfile里沒(méi)有通過(guò)USER指令指定運(yùn)行用戶(hù)時(shí), 容器會(huì)以 root 用戶(hù)運(yùn)行進(jìn)程.

docker 指定用戶(hù)的方式 Dockerfile 中指定用戶(hù)運(yùn)行特定的命令
USER [:] #或
USER [:]
docker run -u(--user)[user:group] 或 --group-add 參數(shù)方式
$ docker run  busybox cat /etc/passwd
root:x:0:0:root:/root:/bin/sh
...
www-data:x:33:33:www-data:/var/www:/bin/false
nobody:x:65534:65534:nobody:/home:/bin/false

$ docker run  --user www-data busybox id
uid=33(www-data) gid=33(www-data)
docker 容器內(nèi)用戶(hù)的權(quán)限

對(duì)比以下情況, host 中普通用戶(hù)創(chuàng)建的文件, 到 docker 容器下映射成了 root 用戶(hù)屬主:

$ mkdir test && touch test/a.txt && cd test
$ docker run --rm -it -v `pwd`:/mnt -w /mnt  busybox   /bin/sh -c "ls -al /mnt/*" 
-rw-r--r--    1 root     root             0 Oct 22 15:36 /mnt/a.txt

而在容器內(nèi)卷目錄中創(chuàng)建的文件, 則對(duì)應(yīng) host 當(dāng)前執(zhí)行 docker 的用戶(hù):

$ docker run --rm -it -v `pwd`:/mnt -w /mnt  busybox   /bin/sh -c "touch b.txt"
$ ls -al
-rw-r--r--  1 xwx  staff    0 10 22 23:36 a.txt
-rw-r--r--  1 xwx  staff    0 10 22 23:54 b.txt
docker volume 文件訪(fǎng)問(wèn)權(quán)限

創(chuàng)建和使用卷, docker 不支持相對(duì)路徑的掛載點(diǎn), 多個(gè)容器可以同時(shí)使用同一個(gè)卷.

$ docker volume create hello #創(chuàng)建卷

hello

$ docker run -it --rm  -v hello:/world -w /world busybox /bin/sh -c "touch /world/a.txt &&  ls -al"   #容器內(nèi)建個(gè)文件
total 8
drwxr-xr-x    2 root     root          4096 Oct 22 16:38 .
drwxr-xr-x    1 root     root          4096 Oct 22 16:38 ..
-rw-r--r--    1 root     root             0 Oct 22 16:38 a.txt

$ docker run -it --rm  -v hello:/world -w /world busybox /bin/sh -c "rm /world/a.txt &&  ls -al" #從容器內(nèi)刪除
total 8
drwxr-xr-x    2 root     root          4096 Oct 22 16:38 .
drwxr-xr-x    1 root     root          4096 Oct 22 16:38 ..

外部創(chuàng)建文件, 容器內(nèi)指定用戶(hù)去刪除

$ touch c.txt && sudo chmod root:wheel c.txt
$ docker run -u 100 -it --rm  -v `pwd`:/world -w /world busybox /bin/sh -c "rm /world/c.txt &&  ls -al"

實(shí)際是可以刪除的

rm: remove "/world/c.txt"? y
total 4
drwxr-xr-x    4 100      root           128 Oct 23 16:09 .
drwxr-xr-x    1 root     root          4096 Oct 23 16:09 ..
-rw-r--r--    1 100      root             0 Oct 22 15:36 a.txt
-rw-r--r--    1 100      root             0 Oct 22 15:54 b.txt
docker 普通用戶(hù)的1024以下端口權(quán)限
           
               
                                           
                       
                 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/27510.html

相關(guān)文章

  • 為OKD/Openshift集群配置OpenLDAP認(rèn)證

    摘要:鏡像可先推送到私有倉(cāng)庫(kù)測(cè)試發(fā)現(xiàn)鏡像有問(wèn)題鏡像以用戶(hù)運(yùn)行切換,賦權(quán)對(duì)參數(shù)做定制將創(chuàng)建域,組織名稱(chēng)為域管理員及管理員密碼持久化存儲(chǔ),本例使用已創(chuàng)建好的存儲(chǔ)系統(tǒng),其支持動(dòng)態(tài)提供。 前言 如同Linux操作系統(tǒng)安裝完成后,管理員需為應(yīng)用創(chuàng)建不同的用戶(hù),那么,K8S/OKD/Openshift集群同樣也需如此,而在OKD/Openshift集群里,我們可集成OpenLDAP目錄系統(tǒng),方法如下所示...

    mudiyouyou 評(píng)論0 收藏0
  • 為OKD/Openshift集群配置OpenLDAP認(rèn)證

    摘要:鏡像可先推送到私有倉(cāng)庫(kù)測(cè)試發(fā)現(xiàn)鏡像有問(wèn)題鏡像以用戶(hù)運(yùn)行切換,賦權(quán)對(duì)參數(shù)做定制將創(chuàng)建域,組織名稱(chēng)為域管理員及管理員密碼持久化存儲(chǔ),本例使用已創(chuàng)建好的存儲(chǔ)系統(tǒng),其支持動(dòng)態(tài)提供。 前言 如同Linux操作系統(tǒng)安裝完成后,管理員需為應(yīng)用創(chuàng)建不同的用戶(hù),那么,K8S/OKD/Openshift集群同樣也需如此,而在OKD/Openshift集群里,我們可集成OpenLDAP目錄系統(tǒng),方法如下所示...

    gclove 評(píng)論0 收藏0
  • 可能是把Docker的概念講的最清楚的一篇文章

    摘要:由于隔離的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程,因此也稱(chēng)其為容器。設(shè)計(jì)時(shí),就充分利用的技術(shù),將其設(shè)計(jì)為分層存儲(chǔ)的架構(gòu)。鏡像實(shí)際是由多層文件系統(tǒng)聯(lián)合組成。分層存儲(chǔ)的特征還使得鏡像的復(fù)用定制變的更為容易。前面講過(guò)鏡像使用的是分層存儲(chǔ),容器也是如此。 本文只是對(duì)Docker的概念做了較為詳細(xì)的介紹,并不涉及一些像Docker環(huán)境的安裝以及Docker的一些常見(jiàn)操作和命令。 閱讀本文大概需要15分...

    Jochen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<