雲端與容器基礎

在實現 Linux 容器技術的核心功能中,命名空間(namespaces)與 cgroups(控制群組)的角色組合,下列何者正確?

  1. A命名空間:區隔行程看得到的東西(行程ID、網路、掛載等),cgroups:限制並計量CPU與記憶體等資源的使用量
  2. B命名空間:限制並計量CPU與記憶體等資源的使用量,cgroups:區隔行程看得到的東西(行程ID、網路、掛載等)
  3. C命名空間:為每個容器啟動另一個核心以互相隔離,cgroups:為每個容器建立虛擬的CPU並模擬硬體
查看答案與解析

正確答案:A. 命名空間:區隔行程看得到的東西(行程ID、網路、掛載等),cgroups:限制並計量CPU與記憶體等資源的使用量

容器是在主機核心上運作的一般行程,再以兩種機制加上隔離。命名空間把行程ID、網路、掛載(檔案系統的樣貌)、主機名稱等依群組區隔,讓容器內的行程只看得到自己的部分。cgroups 限制一群行程可使用的CPU時間與記憶體量,並計量其使用量。兩者都是核心的功能,因此容器既不會啟動另一個核心,也不會模擬硬體。

  • A. 正確。命名空間負責「看得到什麼」,cgroups 負責「能用多少」。
  • B. 角色顛倒了。限制資源量的是 cgroups,區隔看得到的樣貌的是命名空間。
  • C. 執行另一個核心或模擬硬體,是使用超管理器(hypervisor)的虛擬機器的方式。容器共用主機的核心。
練習這個領域 前往領域頁面

雲端與容器基礎的其他題目

  1. 在 Linux 主機上使用 Docker,從以與主機不同的發行版為基礎的映像檔啟動容器,並在其中執行 uname -r(顯示核心版次的指令)與 cat /etc/os-release(顯示發行版資訊的指令)。關於結果的說明,下列何者正確?
  2. 關於容器映像檔與容器的關係,下列何者正確?
  3. 在從某映像檔啟動的容器內,修改了映像檔中所含的設定檔 /etc/app.conf。在 Docker 一般的儲存機制(overlay2 等)下發生的事,下列何者正確?
  4. 為了解開500 MB的封存檔 data.tar.gz,以上面的 Dockerfile 建置映像檔。雖然解開後在同一個 RUN 中刪除了封存檔,映像檔仍然大了一個封存檔的大小。原因與對策的組合,下列何者最適當?
  5. 有5個映像檔,都在同一個基礎映像檔(120 MB)之上各疊加30 MB的專屬層。不考慮層的壓縮與中繼資料的容量。把這5個映像檔全部拉取(pull)到1台伺服器時,映像檔使用的磁碟容量為下列何者?