雲端與容器基礎

有5個映像檔,都在同一個基礎映像檔(120 MB)之上各疊加30 MB的專屬層。不考慮層的壓縮與中繼資料的容量。把這5個映像檔全部拉取(pull)到1台伺服器時,映像檔使用的磁碟容量為下列何者?

  1. A150 MB
  2. B270 MB
  3. C750 MB
查看答案與解析

正確答案:B. 270 MB

映像檔的層以由內容計算出的摘要(digest)識別,相同的層在1台伺服器上只儲存1次,由多個映像檔共用。基礎映像檔的層120 MB只算1次,專屬層有5個,共 30 MB × 5 = 150 MB,合計 120 + 150 = 270 MB。與不共用時的 (120 + 30) × 5 = 750 MB 相比,少了480 MB。統一基礎映像檔,可以減少拉取時間與磁碟容量。

  • A. 120 + 30 = 150 MB 是1個映像檔的大小。5個專屬層全部都需要。
  • B. 正確。120 + 30 × 5 = 270 MB。
  • C. (120 + 30) × 5 = 750 MB 是不共用基礎層時的值。
練習這個領域 前往領域頁面

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

  1. 在上面的 Dockerfile 中,以 docker build 建置映像檔時執行的指令,與以 docker run 啟動容器時執行的指令,其組合下列何者正確?
  2. 以 docker run pinger example.com 啟動由上面的 Dockerfile 建置的映像檔 pinger。在容器內執行的指令為下列何者?
  3. 以上面的指令,從在連接埠80等待連線的 Web 伺服器映像檔 nginx 啟動容器。主機的IP位址為 192.0.2.10,且沒有防火牆等限制。從同一網路中另一台PC的瀏覽器連線到這個 Web 伺服器的URL,下列何者正確?
  4. 上面的 Dockerfile(B),是把在 COPY . . 之後放 RUN npm ci 的 Dockerfile(A),改成只先複製相依套件檔案的順序。npm ci 需要120秒、npm run build 需要30秒、COPY . . 需要2秒,其他指令的時間可忽略。每天20次只修改 src 底下的原始碼(不修改 package.json 與 package-lock.json)後重新建置映像檔。在可使用上次建置的快取時,以每天建置時間的合計來看,B 比 A 少的時間為下列何者?
  5. 在 Docker 中,關於為了保留容器寫入的資料而使用的具名磁碟區(named volume)與繫結掛載(bind mount),下列何者正確?