Docker 容器內進程與 Namespace

本來是繼續閱讀《天天5分鐘玩轉Kubernetes》一書的,發現該書所用的 Kubernetes 版本着實有點老舊( 1.7), 當前版本是 1.18。操做起來有些不一樣,因此找來了最新的 《Kubernetes in Action》第二版 來看,該書還在寫做當中。第二章全是講 Docker 的內容,本人讀書有個很差的習慣,就是不喜歡跳過跳過。看了總會有收穫的,這不,就從中稍微理清了 Docker 容器內進程與 Namespace 的關係。docker

Docker 容器間的進程本質上是宿主主上的一個進程,它能相互隔離靠的是 chroot, namespace 和 cgroup(對 CPU, 內存,磁盤,帶寬等的配額)。千萬不要認爲啓動一個 Docker 容器就是啓動了一個虛擬機。網絡

其中 namespace 實現瞭如下幾項資源的隔離spa

  1. Mount: 掛載點(文件系統)
  2. PID: 進程 ID
  3. Network: 網絡設備,網絡棧,端口等
  4. IPC: 進程間通訊,信號量,消息隊列和共享等
  5. UTS: 主機名和域名
  6. User ID: 用戶和組 ID

閱讀全文 >>blog

相關文章
相關標籤/搜索