雲端與容器基礎
在 Linux 主機上使用 Docker,從以與主機不同的發行版為基礎的映像檔啟動容器,並在其中執行 uname -r(顯示核心版次的指令)與 cat /etc/os-release(顯示發行版資訊的指令)。關於結果的說明,下列何者正確?
- Auname -r 與 /etc/os-release 都顯示主機的核心與發行版的資訊
- Buname -r 與 /etc/os-release 都顯示映像檔所依據的發行版及其核心的資訊
- Cuname -r 顯示主機的核心,/etc/os-release 顯示映像檔的發行版
查看答案與解析
正確答案:C. uname -r 顯示主機的核心,/etc/os-release 顯示映像檔的發行版
容器共用主機的核心,因此向核心查詢的 uname -r 即使在容器內,也會顯示主機核心的版次。另一方面,/etc/os-release 是檔案,所以讀取的是容器看得到的檔案系統,也就是映像檔中的內容,並顯示映像檔的發行版名稱。映像檔不含核心,只包含指令與函式庫等使用者空間的檔案。因此,以主機核心所沒有的功能為前提的程式,在容器內也無法運作。
- A. /etc/os-release 是容器檔案系統中的檔案,因此讀取的是映像檔的內容。
- B. 映像檔不含核心。核心是共用主機的,所以 uname -r 顯示的是主機的版次。
- C. 正確。核心與主機共用,看到的檔案則是映像檔的。