雲端與容器基礎

以 CI/CD 管線建置的容器映像檔,在預備(staging)環境中測試並合格了。把這個映像檔發布到正式環境的方法,下列何者最適當?

  1. A為正式環境以同一份原始碼再建置一次映像檔,並把它發布到正式環境
  2. B為測試過的映像檔重新貼上 latest 標籤,正式環境指定 latest 來拉取
  3. C以摘要指定測試過的映像檔本身發布到正式環境,各環境的差異以設定提供
查看答案與解析

正確答案:C. 以摘要指定測試過的映像檔本身發布到正式環境,各環境的差異以設定提供

在管線中,把建置產生的成品(這裡是映像檔)視為不可變更,讓同一個成品依序從預備環境推進到正式環境。即使是同一份原始碼,重新建置時相依的函式庫或基礎映像檔的版本也可能改變,結果發布到正式環境的會是與測試不同的東西。標籤之後可以改貼到別的映像檔上,因此要確實指向同一個映像檔,應使用由內容決定的摘要。連線目標這類各環境的差異,不放進映像檔,而以環境變數等設定提供。

  • A. 重新建置可能改變相依的函式庫等,成為與測試時不同的映像檔。
  • B. latest 是可以改貼的標籤,拉取時可能指向別的映像檔。
  • C. 正確。以摘要保證發布到正式環境的是與測試相同的映像檔。
練習這個領域 前往領域頁面

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

  1. 如上所示,不把資料庫的連線目標寫進映像檔,而是在啟動容器時以環境變數傳入。這個設計的主要優點,下列何者最適當?
  2. 在多個服務協同運作的系統中,想調查使用者的1個要求依什麼順序經過了哪些服務、在各服務分別花了多少時間。在用於可觀測性的資料中,最適合的是下列何者?
  3. 在實現 Linux 容器技術的核心功能中,命名空間(namespaces)與 cgroups(控制群組)的角色組合,下列何者正確?
  4. 在 Linux 主機上使用 Docker,從以與主機不同的發行版為基礎的映像檔啟動容器,並在其中執行 uname -r(顯示核心版次的指令)與 cat /etc/os-release(顯示發行版資訊的指令)。關於結果的說明,下列何者正確?
  5. 關於容器映像檔與容器的關係,下列何者正確?