雲端與容器基礎

在 Docker 中,關於為了保留容器寫入的資料而使用的具名磁碟區(named volume)與繫結掛載(bind mount),下列何者正確?

  1. A磁碟區放在 Docker 管理的區域,繫結掛載放在主機指定的目錄,兩者在刪除容器後都會保留
  2. B具名磁碟區的資料在刪除容器後會保留,但繫結掛載的資料在刪除容器時,也會從主機的目錄中一起消失
  3. C兩者都是作為容器可寫入層的一部分建立,因此以 docker rm 刪除容器時,資料也會一起消失
查看答案與解析

正確答案:A. 磁碟區放在 Docker 管理的區域,繫結掛載放在主機指定的目錄,兩者在刪除容器後都會保留

寫入容器可寫入層的資料,會在刪除容器時一起消失,因此想保留的資料要放在容器之外。具名磁碟區建立在 Docker 管理的區域,在以 docker volume rm 等明確刪除之前都會保留。繫結掛載是讓主機上任意目錄出現在容器內的方法,資料就以主機上的檔案原樣保留。在希望主機上編輯的原始碼立即反映的開發情境常用繫結掛載,像資料庫資料這種想交給 Docker 管理的資料則常用磁碟區。

  • A. 正確。放置的位置不同,但兩者都在容器之外,所以會保留。
  • B. 繫結掛載的資料就是主機目錄中的檔案本身,所以刪除容器也不會消失。
  • C. 兩者都在容器的可寫入層之外,因此刪除容器後仍會保留。
練習這個領域 前往領域頁面

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

  1. 指定 registry.example.com/team/web:1.4 來拉取(pull)映像檔。這個指定中各部分意義的組合,下列何者正確?
  2. scratch 是不含任何檔案的空映像檔。以上面的多階段建置 Dockerfile 建置的最終映像檔所包含的內容,下列何者正確?
  3. 在 Kubernetes 中,作為部署與管理的最小單位,把1個以上的容器組合在一起並讓它們共用同一IP位址與磁碟區的是下列何者?
  4. 在 Kubernetes 中,指定 replicas: 3 的 Deployment 有3個 Pod 在執行。以 kubectl delete pod 刪除其中1個 Pod 時發生的事,下列何者正確?
  5. 在 Kubernetes 的 Deployment 中,把 Pod 範本中的容器映像檔改成新版本。在預設的更新方式(RollingUpdate)下發生的事,下列何者正確?