本系列文章根據Ajeet Singh Raina所寫的「Top 100 Docker Interview Questions」文章,翻譯轉載成一百個問題與答案,並Docker相關面試問題分成初級、中級和進階級。本文為初級的第二部分,很適合正在準備Docker相關工作的職缺面試或是想要吸收Docker相關知識的IT從業人員。
然後,利用docker build命令來建構這個Docker映像檔,如圖7所示。
首先,不加任何參數執行這個映像檔,如圖8所示。
再來,如圖9所示加上參數後再執行。
這清楚地顯示CMD所設定的參數可以被覆蓋,並且只能執行ENTRYPOINT所設定的cat命令。
Q48:為何Cache暫存對Docker建置(docker build)如此重要?
如果檔案系統上的相關物件在Docker建置期間是維持不變,那麼對即將產出的映像檔來說,在主機上重複利用先前建構的暫存Layer,可以節省大量時間。
這建置新容器的過程變得真正非常快,完全不必建立這些檔案結構以及把資料寫入硬碟,那些參考到的Layer會有效率地識別,並重用先前所建構過的Layer結構。
Q49:為什麼Docker監控是必要的?
Docker監控之所以是必要的,原因說明如下:
‧監控有助於主動識別問題,且有助於避免系統中斷。
‧監控的時間序列資料提供了對微調應用系統的判斷方向,以便獲得更好的效能和穩定性。
‧在全面監控的情況下,可以安全地逐步變更,因為問題會在早期便發現,並且在造成全面停機的根本原因之前就迅速解決。
‧這些變更是基於原本容器環境之上,並且相關變化也會間接受到監控。
Q50:請說明Windows容器和Hyper-V容器之間的區別?
圖10所示是微軟為Windows容器和Hyper-V容器所設計的架構。而表1是它們之間的一些差異,可以參考一下。
Q51:Swarm與Kubernetes之間的主要差別是什麼?
Kubernetes是一套用於容器化應用程式之自動化部署、擴展和管理的開源系統,是由Google依據公司內部所使用,名為Borg(有時稱為Omega)的內部叢集管理系統,憑藉在營運中執行容器的經驗所設計而成。
另一方面,Swarm叢集是由部署在多個節點上的Docker Engine所組成,Manager節點負責調度編排和叢集管理,而Worker節點接收並執行任務。
在表2中,則列舉出Docker Swarm和Kubernetes之間的主要差異。
Q52:是否可以在Docker EE 2.0平台上運行Kubernetes?
是的,確實可以在Docker EE 2.0平台上運行Kubernetes,Docker企業版(Docker Enterprise Edition,Dcoker EE)2.0是唯一可以在多種Linux、多種作業系統和多種雲端服務上,管理和保護Kubernetes上所執行的應用程式的Client端平台,目的是成為一個企業組織整合和擴展的完整平台。
Docker EE 2.0支援目前使用的應用程式類型、協同調度管理工具以及部署位置,提供了最大的靈活性和選擇性,讓組織能夠透過簡化的工作流程更快地實施Kubernetes,並經由整合的安全解決方案提供更安全的應用系統。