91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

簡述Docker的底層技術原理之Namespace

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

掃碼添加小助手

加入工程師交流群

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

Namespace系統(tǒng)調用參數(shù)隔離內容

UTSCLONE_NEWUTS主機名與域名

IPCCLONE_NEWIPC信號量、消息隊列和共享內存

PIDCLONE_NEWPID進程編號

NetworkCLONE_NEWNET網(wǎng)絡設備、網(wǎng)絡棧、端口等等

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

UserCLONE_NEWUSER用戶和用戶組

CgroupCLONE_NEWCGROUPCgroup的根目錄

TimeCLONE_NEWTIME時鐘

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

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

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

struct task_struct { 。。.

/* namespaces */

struct nsproxy *nsproxy;

。。.

}

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

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

文章轉載:https://os.51cto.com/art/202107/671347.htm

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

編輯:jq

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

    關注

    0

    文章

    532

    瀏覽量

    14247

原文標題:Docker內核技術原理之Namespace

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何在2026年Rocky Linux(8、9和10)上安裝Docker

    Docker 已成為現(xiàn)代應用部署、開發(fā)和基礎設施自動化的核心技術。如果你在服務器或VPS上運行Rocky Linux,學會在Rocky Linux上安裝Docker是你2026年能掌握的最寶貴技能
    的頭像 發(fā)表于 01-12 17:21 ?1188次閱讀

    香港服務器支持Docker和Kubernetes嗎?

    在云原生技術成為主流的今天,Docker和Kubernetes(K8s)已成為現(xiàn)代化應用開發(fā)和部署的事實標準。對于選擇香港服務器的開發(fā)者與企業(yè)而言,一個核心問題是:香港服務器能否完美支持Docker
    的頭像 發(fā)表于 10-21 15:47 ?684次閱讀

    【HZ-T536開發(fā)板免費體驗】Docker 環(huán)境安裝及應用

    一、檢查 Docker 安裝狀態(tài) 板子提示“command not found”或無版本信息,說明 Docker 未安裝,如有需要請自行安裝 二、Docker 環(huán)境安裝 首先更新系統(tǒng)包索引并安裝
    發(fā)表于 09-01 17:59

    Docker容器安全攻防實戰(zhàn)案例

    在云原生時代,Docker已成為現(xiàn)代應用部署的基石。然而,容器化帶來便利的同時,也引入了新的安全挑戰(zhàn)。作為一名在生產環(huán)境中管理過數(shù)千個容器的運維工程師,我將通過真實的攻防實戰(zhàn)案例,帶你深入了解Docker安全的每一個細節(jié)。
    的頭像 發(fā)表于 08-05 09:52 ?1343次閱讀

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

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

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

    探討基于Docker部署的MySQL數(shù)據(jù)庫在AI應用中的關鍵作用。通過憶聯(lián)PCIe5.0企業(yè)級SSD(UH812a)實測驗證,展示了Namespace技術與QoS優(yōu)化策略如何實現(xiàn)存儲資源的精細化管理
    的頭像 發(fā)表于 06-26 13:53 ?453次閱讀
    憶聯(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 ?896次閱讀

    如何使用Docker部署大模型

    隨著深度學習和大模型的快速發(fā)展,如何高效地部署這些模型成為了一個重要的挑戰(zhàn)。Docker 作為一種輕量級的容器化技術,能夠將模型及其依賴環(huán)境打包成一個可移植的容器,極大地簡化了部署流程。本文將詳細介紹如何使用 Docker 部署
    的頭像 發(fā)表于 05-24 16:39 ?1118次閱讀

    Docker Compose的常用命令

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

    Docker基本命令及其用例

    Docker 已迅速成為容器化應用程序的事實標準。作為開發(fā)人員或 DevOps 工程師/系統(tǒng)管理員,熟悉 Docker 對于高效部署現(xiàn)代、可移植的應用程序至關重要。
    的頭像 發(fā)表于 04-30 10:04 ?707次閱讀

    Docker常用命令大全

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

    京東中臺化底層支撐框架技術分析及隨想

    架構涉及的變化和影響,只是從中臺化演進的思路,及使用的底層支撐技術框架進行分析探討,重點對中臺及前臺協(xié)作涉及到的擴展點及熱部署包的底層技術細節(jié),結合京東實際落地情況,對涉及的核心
    的頭像 發(fā)表于 04-08 11:29 ?668次閱讀
    京東中臺化<b class='flag-5'>底層</b>支撐框架<b class='flag-5'>技術</b>分析及隨想

    技術案例】Android in Docker

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

    基于Docker鏡像逆向生成Dockerfile

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