雲端與容器基礎

在 Linux 主機上使用 Docker,從以與主機不同的發行版為基礎的映像檔啟動容器,並在其中執行 uname -r(顯示核心版次的指令)與 cat /etc/os-release(顯示發行版資訊的指令)。關於結果的說明,下列何者正確?

  1. Auname -r 與 /etc/os-release 都顯示主機的核心與發行版的資訊
  2. Buname -r 與 /etc/os-release 都顯示映像檔所依據的發行版及其核心的資訊
  3. Cuname -r 顯示主機的核心,/etc/os-release 顯示映像檔的發行版
查看答案與解析

正確答案:C. uname -r 顯示主機的核心,/etc/os-release 顯示映像檔的發行版

容器共用主機的核心,因此向核心查詢的 uname -r 即使在容器內,也會顯示主機核心的版次。另一方面,/etc/os-release 是檔案,所以讀取的是容器看得到的檔案系統,也就是映像檔中的內容,並顯示映像檔的發行版名稱。映像檔不含核心,只包含指令與函式庫等使用者空間的檔案。因此,以主機核心所沒有的功能為前提的程式,在容器內也無法運作。

  • A. /etc/os-release 是容器檔案系統中的檔案,因此讀取的是映像檔的內容。
  • B. 映像檔不含核心。核心是共用主機的,所以 uname -r 顯示的是主機的版次。
  • C. 正確。核心與主機共用,看到的檔案則是映像檔的。
練習這個領域 前往領域頁面

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

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