<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Docker內(nèi)核技術(shù)原理之Namespace

          共 1257字,需瀏覽 3分鐘

           ·

          2021-07-17 17:42

          Docker的空間隔離使用的是namespace(空間),它是內(nèi)核提供的一種空間隔離,在一個空間下,每個進(jìn)程看到的視圖是一致的,相應(yīng)的如果不在一個空間下看到資源視圖是不一致的,舉個例子,如果兩個進(jìn)程在同一個網(wǎng)絡(luò)命名空間下,那么他們看到的網(wǎng)絡(luò)信息(網(wǎng)卡、IP、路由等)是一樣的,可以通過localhost的方式互相訪問。常用的有6種namespace,在Linux 內(nèi)核4.6之后又添加了Cgroup這namespace,5.6 之后又添加了時鐘namespace。

          Namespace系統(tǒng)調(diào)用參數(shù)隔離內(nèi)容
          UTSCLONE_NEWUTS主機名與域名
          IPCCLONE_NEWIPC信號量、消息隊列和共享內(nèi)存
          PIDCLONE_NEWPID進(jìn)程編號
          NetworkCLONE_NEWNET網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)棧、端口等等
          MountCLONE_NEWNS掛載點(文件系統(tǒng))
          UserCLONE_NEWUSER用戶和用戶組
          CgroupCLONE_NEWCGROUPCgroup的根目錄
          TimeCLONE_NEWTIME時鐘

          這里有個小細(xì)節(jié),上面表格創(chuàng)建Mount Namespace的系統(tǒng)調(diào)用參數(shù)是CLONE_NEWNS,而不是CLONE_NEWMOUNT。從字面理解是創(chuàng)建一個命名空間的意思,這是由于歷史原因?qū)е碌模驗镸ount Namespace是第一個namespace,內(nèi)核的開發(fā)者可能也沒有預(yù)料到后續(xù)還有其它的namespace的加入,所以就先把CLONE_NEWNS給占用了。

          可見,namespace的隔離其實并不充分,除了上面的隔離能力,其他的都一樣。譬如,時鐘在內(nèi)核5.6版本之前,所有容器和操作系統(tǒng)都共享同一個時鐘,如果修改了操作系統(tǒng)的時間,所有容器都時間都會變化。

          namespace實現(xiàn)原理也非常簡單,每個進(jìn)程(task_struct)都有一個關(guān)于namespace的屬性nsproxy,表示自己所屬的namespace。

          struct task_struct { ...

          /* namespaces */

          struct nsproxy *nsproxy;

          ...

          }

          其中的nsproxy就是指向各種namespace的一個代理。如下所示:

          當(dāng)新進(jìn)程被創(chuàng)建后會繼承其父進(jìn)程的namespace,這就是為啥一個容器里面的所有進(jìn)程都共享namespace。在Linux集群上面,通過讀取“/proc/進(jìn)程ID/ns/”下的文件可以獲取到每個進(jìn)程對應(yīng)的namespace。

          文章轉(zhuǎn)載:https://os.51cto.com/art/202107/671347.htm

          (版權(quán)歸原作者所有,侵刪)


          點擊下方“閱讀原文”查看更多

          瀏覽 21
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色免费片 | 精品一区二区三区入口 | 小菊花天天要人干 | 国产一级片无码 | 欧美三级视频 |