一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡述Docker的底層技術(shù)原理之Namespace

阿銘linux ? 來源:今日頭條 ? 作者:云技術(shù)趣談 ? 2021-07-21 09:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

Namespace系統(tǒng)調(diào)用參數(shù)隔離內(nèi)容

UTSCLONE_NEWUTS主機(jī)名與域名

IPCCLONE_NEWIPC信號量、消息隊(duì)列和共享內(nèi)存

PIDCLONE_NEWPID進(jìn)程編號

NetworkCLONE_NEWNET網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)棧、端口等等

MountCLONE_NEWNS掛載點(diǎn)(文件系統(tǒng))

UserCLONE_NEWUSER用戶和用戶組

CgroupCLONE_NEWCGROUPCgroup的根目錄

TimeCLONE_NEWTIME時(shí)鐘

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

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

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

struct task_struct { 。。.

/* namespaces */

struct nsproxy *nsproxy;

。。.

}

其中的nsproxy就是指向各種namespace的一個(gè)代理。

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

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

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

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    515

    瀏覽量

    12942

原文標(biāo)題:Docker內(nèi)核技術(shù)原理之Namespace

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    干貨分享 | RK3588 Ubuntu系統(tǒng)Docker容器使用指南

    前言:在瑞芯微RK3588高性能AIoT平臺上運(yùn)行Ubuntu系統(tǒng)時(shí),Docker容器技術(shù)能極大提升開發(fā)部署效率。通過輕量級虛擬化實(shí)現(xiàn)環(huán)境隔離與快速遷移,本文將從零開始詳解RK3588平臺
    的頭像 發(fā)表于 06-27 12:01 ?944次閱讀
    干貨分享 | RK3588 Ubuntu系統(tǒng)<b class='flag-5'>Docker</b>容器使用指南

    憶聯(lián) Docker+MySQL 流控方案:打造安全高效存儲底座,釋放 AI 極致性能

    探討基于Docker部署的MySQL數(shù)據(jù)庫在AI應(yīng)用中的關(guān)鍵作用。通過憶聯(lián)PCIe5.0企業(yè)級SSD(UH812a)實(shí)測驗(yàn)證,展示了Namespace技術(shù)與QoS優(yōu)化策略如何實(shí)現(xiàn)存儲資源的精細(xì)化管理
    的頭像 發(fā)表于 06-26 13:53 ?96次閱讀
    憶聯(lián) <b class='flag-5'>Docker</b>+MySQL 流控方案:打造安全高效存儲底座,釋放 AI 極致性能

    docker無法啟用怎么解決?

    mengxing@mengxing-virtual-machine:/etc/docker$ sudo systemctl daemon-reload
    發(fā)表于 06-23 07:17

    Docker Volume管理命令大全

    Docker Volume管理命令大全
    的頭像 發(fā)表于 05-28 17:14 ?185次閱讀

    如何使用Docker部署大模型

    隨著深度學(xué)習(xí)和大模型的快速發(fā)展,如何高效地部署這些模型成為了一個(gè)重要的挑戰(zhàn)。Docker 作為一種輕量級的容器化技術(shù),能夠?qū)⒛P图捌湟蕾嚟h(huán)境打包成一個(gè)可移植的容器,極大地簡化了部署流程。本文將詳細(xì)介紹如何使用 Docker 部署
    的頭像 發(fā)表于 05-24 16:39 ?324次閱讀

    Docker Compose的常用命令

    大家好,今天給大家分享Docker Compose的常用命令,以及docker-compose文件的屬性。Docker Compose 是一個(gè)用于定義和運(yùn)行多容器 Docker 應(yīng)用應(yīng)
    的頭像 發(fā)表于 04-30 13:40 ?434次閱讀

    Docker常用命令大全

    Docker 是一種開源的應(yīng)用容器引擎,廣泛應(yīng)用于開發(fā)、部署和運(yùn)行分布式應(yīng)用。掌握 Docker 常用命令對于開發(fā)人員和運(yùn)維人員來說非常重要。本文將為大家整理常用的Docker 命令,并按照功能分為多個(gè)部分,幫助你高效使用
    的頭像 發(fā)表于 04-22 12:47 ?379次閱讀

    技術(shù)案例】Android in Docker

    Docker介紹Docker是一個(gè)開源的容器化平臺,用于打包、分發(fā)和運(yùn)行應(yīng)用程序。它通過將應(yīng)用及其所有依賴打包到獨(dú)立的容器中,確保應(yīng)用在不同環(huán)境中一致運(yùn)行。Docker提供快速部署、隔離性強(qiáng)和高效
    的頭像 發(fā)表于 04-02 16:33 ?641次閱讀
    【<b class='flag-5'>技術(shù)</b>案例】Android in <b class='flag-5'>Docker</b>

    基于Docker鏡像逆向生成Dockerfile

    在本文中, 我們將通過理解Docker鏡像如何存儲數(shù)據(jù), 以及如何使用工具查看鏡像方方面面的信息來逆向工程一個(gè)Docker鏡像; 以及如何使用Python的Docker API來構(gòu)建一個(gè)類似Dedockify的工具來創(chuàng)建Dock
    的頭像 發(fā)表于 03-10 09:45 ?585次閱讀
    基于<b class='flag-5'>Docker</b>鏡像逆向生成Dockerfile

    云服務(wù)器 Flexus X 實(shí)例,Docker 集成搭建 NGINX

    Docker 集成搭建 NGINX 1、購買華為云 Flexus X 實(shí)例 Flexus云服務(wù)器X實(shí)例-華為云 (huaweicloud.com) ? 2、docker 安裝 yum?install
    的頭像 發(fā)表于 01-13 11:09 ?945次閱讀
    云服務(wù)器 Flexus X 實(shí)例,<b class='flag-5'>Docker</b> 集成搭建 NGINX

    在 Huawei Cloud EulerOS 系統(tǒng)中安裝 Docker 的詳細(xì)步驟與常見問題解決

    Docker鏡像 ? 6. 配置Docker鏡像加速 ? 6.1 修改daemon.json文件 ? 6.2 再次拉取鏡像 ? 結(jié)語 ? 前言 Docker 是一種輕量級的容器技術(shù),廣
    的頭像 發(fā)表于 12-26 18:12 ?1323次閱讀
    在 Huawei Cloud EulerOS 系統(tǒng)中安裝 <b class='flag-5'>Docker</b> 的詳細(xì)步驟與常見問題解決

    Docker運(yùn)行環(huán)境安裝

    作者:京東科技 林中 Docker是一個(gè)開放的平臺,用于開發(fā)、發(fā)布和運(yùn)行應(yīng)用程序。Docker分離了應(yīng)用程序和運(yùn)行應(yīng)用的基礎(chǔ)設(shè)施,從而實(shí)現(xiàn)了軟件的快速交付。利用docker提供的一系列功能,包括構(gòu)建
    的頭像 發(fā)表于 10-29 11:28 ?655次閱讀

    手動構(gòu)建Docker鏡像的方法

    不推薦使用docker commit命令,而應(yīng)該使用更靈活、更強(qiáng)大的dockerfile來構(gòu)建docker鏡像。
    的頭像 發(fā)表于 08-05 15:30 ?898次閱讀
    手動構(gòu)建<b class='flag-5'>Docker</b>鏡像的方法

    ARM平臺實(shí)現(xiàn)Docker容器技術(shù)

    或網(wǎng)絡(luò)接口進(jìn)行通信。 圖1(2)Docker的作用更高效的利用系統(tǒng)資源:Docker對系統(tǒng)資源的利用率更高,無論是應(yīng)用執(zhí)行速度,內(nèi)存損耗或者文件存儲速度,都要比傳統(tǒng)虛擬機(jī)技術(shù)更高效。因此,相比虛擬機(jī)
    發(fā)表于 07-25 14:36

    ARM平臺實(shí)現(xiàn)Docker容器技術(shù)

    或網(wǎng)絡(luò)接口進(jìn)行通信。圖1(2)Docker的作用更高效的利用系統(tǒng)資源:Docker對系統(tǒng)資源的利用率更高,無論是應(yīng)用執(zhí)行速度,內(nèi)存損耗或者文件存儲速度,都要比傳統(tǒng)虛擬機(jī)技術(shù)更高效。因此,相比虛擬機(jī)
    發(fā)表于 07-17 11:05