Docker & Container

關於 Virtualization 虛擬化類別請參考 http://benjr.tw/3383

Container

Container 採用與 KVM 一樣的做法 (Linux 核心加入 KVM 再讓這 Linux 核心當作 VMM ,在 KVM 下的 Guest OS 對於 Linux 核心而言都只是一個 Process 行程). LXC 採用類似的方式在原作業系統中透過資源共享的方式,建立出一個獨立空間 (虛擬環境,有自己的 file system, process 與 block I/O ,network 空間) 給另外一個作業系統來使用,這邊不再稱它為虛擬機器 Virtual Machine 而是叫做 Container.

  1. Chroot & Schroot – http://benjr.tw/95942
  2. LXC (Linux Containers) 基礎介紹 – http://benjr.tw/95955
  3. LXC (Linux Containers) 的使用 – http://benjr.tw/93708
  4. LXC 的網路架構 – http://benjr.tw/96074
  5. LXC 的網路架構 – http://benjr.tw/96074
  6. cgroup & namespace – http://benjr.tw/98946
    cgroups 可以針對 Container 下的資源(CPU , Memory , Block I/O , network , etc.)進行限制和優先順序,namespace 提供了 Container 彼此之間與作業系統是完全隔離且不受影響的.

Docker

我們先來了解一下關於 Docker 基本的三個觀念. 容器 (Container) , 映像檔 (Image) , 倉庫 (Repository) .

  • 容器 (Container)
    在原作業系統中透過資源共享的方式,建立出一個獨立空間 (虛擬環境,有自己的 file system, process 與 block I/O ,network 空間) 給另外一個作業系統來使用,聽起來很像是虛擬機器 Virtual Machine 但方式不一樣,名稱也不太一樣,這樣的方式叫做 Container.
  • 映像檔 (Image)
    Container 是一個容器,我們需要將作業環境放到這一個容器,最快的方式就是透過網路下載別人已經做好的作業環境 (唯讀映像檔) 來使用,當然也是可以自己建立.因為這是一個唯讀的映像檔,所以容器啟動的時候還會提供資料可以寫入的一層地方.
  • 倉庫 (Repository)
    倉庫是用來存放映像檔的地方,預設會到 Docker Hub https://hub.docker.com 這個倉庫來找.
  1. Linux Docker 基礎介紹 – http://benjr.tw/95998
  2. Docker 的網路架構 – http://benjr.tw/96629
  3. 使用 Docker 的技術來架設 web server (Nginx) – http://benjr.tw/96590

那 Docker 是什麼? Docker 與 Container 的關聯是? 如下圖所示.
docker01

使用 Docker 用來管理 Container 可以讓 Container 的環境更為完善.

Podman

在 RHEL 8 / CentOS 8 把 Docker 改成為 Podman .

應用

  • Netdatahttp://benjr.tw/103159
    是一種用來監控並收集系統資訊(如 CPU , Memory , 磁碟 , 網路 …使用率)的工具.
沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料