摘要:我們知道在容器里是無(wú)法訪問到宿主操作系統(tǒng)的文件目錄的,但這種隔離是怎么實(shí)現(xiàn)的呢其實(shí)一點(diǎn)也不神奇利用了系統(tǒng)的內(nèi)部命令。
我們知道在Docker容器里是無(wú)法訪問到宿主操作系統(tǒng)的文件目錄的,但這種隔離是怎么實(shí)現(xiàn)的呢?
其實(shí)一點(diǎn)也不神奇——利用了Linux系統(tǒng)的內(nèi)部命令chroot。
chroot能將進(jìn)程的根目錄設(shè)置成任意指定的目錄。
使用chroot我們能創(chuàng)建一個(gè)新的進(jìn)程,并且以chroot執(zhí)行時(shí)傳入的參數(shù)作為新進(jìn)程的根目錄。
因?yàn)樾逻M(jìn)程創(chuàng)建之后就無(wú)法訪問除了新進(jìn)程創(chuàng)建時(shí)傳入chroot參數(shù)之外的其他文件目錄,為了確保這個(gè)新進(jìn)程能夠正常工作,我們必須手動(dòng)拷貝一些文件到新進(jìn)程的根目錄映射的舊目錄下。
做一個(gè)如下測(cè)試:
新建一個(gè)文件夾,執(zhí)行chroot . 意思是把文件夾$HOME/container當(dāng)作新建進(jìn)程的根目錄。但是沒有成功,報(bào)錯(cuò)誤消息chroot: failed to run command ‘/bin/bash’: No such file or directory
執(zhí)行下面兩條命令:
執(zhí)行命令ldd $HOME/container/bin/bash:
該命令為了查看需要有哪些庫(kù)文件得手動(dòng)拷貝到文件夾$/HOME/container/bin/bash下面:
根據(jù)ldd的輸出,再次執(zhí)行下圖的八條命令:
再次執(zhí)行chroot . , 發(fā)現(xiàn)這次成功了:
pwd發(fā)現(xiàn)是在根目錄下,ls也只能發(fā)現(xiàn)執(zhí)行chroot時(shí)指定的container目錄下的子目錄:
這就是docker文件目錄隔離的實(shí)現(xiàn)原理。
要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/27562.html
摘要:我們知道在容器里是無(wú)法訪問到宿主操作系統(tǒng)的文件目錄的,但這種隔離是怎么實(shí)現(xiàn)的呢其實(shí)一點(diǎn)也不神奇利用了系統(tǒng)的內(nèi)部命令。 我們知道在Docker容器里是無(wú)法訪問到宿主操作系統(tǒng)的文件目錄的,但這種隔離是怎么實(shí)現(xiàn)的呢? 其實(shí)一點(diǎn)也不神奇——利用了Linux系統(tǒng)的內(nèi)部命令chroot。 chroot能將進(jìn)程的根目錄設(shè)置成任意指定的目錄。 showImg(https://segmentfault....
摘要:執(zhí)行容器內(nèi)部運(yùn)行的執(zhí)行工作作為容器的執(zhí)行驅(qū)動(dòng),負(fù)責(zé)創(chuàng)建容器運(yùn)行命名空間,負(fù)責(zé)容器資源使用的統(tǒng)計(jì)與限制,負(fù)責(zé)容器內(nèi)部進(jìn)程的真正運(yùn)行等。典型的在啟動(dòng)后,首先將設(shè)置為進(jìn)行一系列檢查然后將其切換為供用戶使用。 在https://segmentfault.com/a/11... 容器,隔離,云的概述。這篇對(duì)其中用途廣泛的docker,k8s做詳細(xì)介紹,并給出云搭建的生態(tài)環(huán)境體系。 docker ...
摘要:執(zhí)行容器內(nèi)部運(yùn)行的執(zhí)行工作作為容器的執(zhí)行驅(qū)動(dòng),負(fù)責(zé)創(chuàng)建容器運(yùn)行命名空間,負(fù)責(zé)容器資源使用的統(tǒng)計(jì)與限制,負(fù)責(zé)容器內(nèi)部進(jìn)程的真正運(yùn)行等。典型的在啟動(dòng)后,首先將設(shè)置為進(jìn)行一系列檢查然后將其切換為供用戶使用。 在https://segmentfault.com/a/11... 容器,隔離,云的概述。這篇對(duì)其中用途廣泛的docker,k8s做詳細(xì)介紹,并給出云搭建的生態(tài)環(huán)境體系。 docker ...
摘要:所以,我們希望對(duì)進(jìn)程進(jìn)行資源利用上的限制或控制。它主要提供了如下功能限制資源使用,比如內(nèi)存使用上限以及文件系統(tǒng)的緩存限制。的作用資源限制可以對(duì)任務(wù)使用的資源內(nèi)存,,磁盤等資源總額進(jìn)行限制。通過實(shí)現(xiàn)了資源隔離,通過實(shí)現(xiàn)了資源限制。 作者:燒雞太子爺來源:恒生LIGHT云社區(qū)背景最近在給組內(nèi)新人講解一些docker...
摘要:而實(shí)際上在宿主機(jī)中也會(huì)同步啟動(dòng)一個(gè)進(jìn)程,其在宿主機(jī)中是。如果其中的某一個(gè)容器正在執(zhí)行密集型的任務(wù),那么它就會(huì)影響其他容器的任務(wù)執(zhí)行效率,導(dǎo)致多個(gè)容器相互影響并且搶占資源。 作者:榮幸 為什么是容器 如果問你現(xiàn)在最熱門的服務(wù)器端技術(shù)什么?想必很多人會(huì)不假思索的說是容器! 容器技術(shù)實(shí)際上并不是一個(gè)新鮮的名詞,現(xiàn)在大家一提到容器馬上想到的就是Docker,但是容器這個(gè)詞并不是Docker公司...
閱讀 1707·2023-04-26 02:30
閱讀 1033·2021-11-10 11:36
閱讀 1380·2021-10-08 10:14
閱讀 3496·2021-09-28 09:35
閱讀 1552·2021-08-23 09:47
閱讀 2544·2019-08-30 15:56
閱讀 1469·2019-08-30 15:44
閱讀 1750·2019-08-30 13:59