【15】進大廠必須掌握的面試題-容器化和虛擬化面試

Q1。什麼是容器?

我的建議是首先解釋對容器化的需求,容器用於提供一致的計算環境,從開發人員的筆記本電腦到測試環境,從過渡環境到生產環境。
現在給出容器的定義,一個容器包含一個完整的運行時環境:一個應用程序,及其所有依賴項,庫和其他二進制文件,以及運行該文件所需的配置文件,這些文件捆綁在一個程序包中。容器化應用程序平台及其依賴項可消除OS分佈和基礎架構中的差異。

容器-devops面試問題

Q2。與虛擬化相比,容器化提供了哪些優勢?

以下是容器化相對於虛擬化的優勢:

  • 容器提供實時配置和可伸縮性,但虛擬機提供緩慢的配置
  • 與虛擬機相比,容器輕巧
  • 與容器相比,VM的性能有限
  • 與VM相比,容器具有更好的資源利用率

Q3。容器(在我們的例子中為Docker)與虛擬機管理程序虛擬化(vSphere)有何不同?有什麼好處?

下面給出一些區別。確保在回答中包括以下差異:

docker vsphere-devops面試問題

Q4。什麼是Docker映像?

Docker映像是Docker容器的來源。換句話說,Docker映像用於創建容器。圖像是使用build命令創建的,開始運行時它們會產生一個容器。圖像存儲在Docker註冊表中,例如registry.hub.docker.com,因為它們可能會變得很大,圖像被設計為由其他圖像層組成,從而在通過網絡傳輸圖像時僅發送少量數據。

Q5。什麼是Docker容器?

這是一個非常重要的問題,因此請確保您不偏離本主題。我建議您遵循以下格式:
Docker容器包括應用程序及其所有依賴項,但與其他容器共享內核,並在主機操作系統上的用戶空間中作為隔離的進程運行。Docker容器不依賴於任何特定的基礎架構:它們可以在任何計算機,任何基礎架構和任何雲中運行。
現在說明如何創建Docker容器。可以通過創建Docker映像然後運行它來創建Docker容器,也可以使用Dockerhub上存在的Docker映像。
Docker容器基本上是Docker映像的運行時實例。

Q6。什麼是Docker Hub?

這個問題的答案很直接。Docker Hub是一項基於雲的註冊表服務,可讓您鏈接到代碼存儲庫,構建映像並對其進行測試,存儲手動推送的映像以及與Docker雲的鏈接,以便您可以將映像部署到主機。它為整個開發流程中的容器映像發現,分發和變更管理,用戶和團隊協作以及工作流自動化提供了集中式資源。

Q7。 Docker與其他容器技術有何不同?

根據我的說法,您的答案應該
包含以下幾點:Docker容器易於部署在雲中。與其他技術相比,它可以使更多的應用程序在同一硬件上運行,這使開發人員可以輕鬆快速地創建可立即運行的容器化應用程序,並使管理和部署應用程序更加容易。您甚至可以與應用程序共享容器。
如果您還有其他要點,可以這樣做,但請確保您的答案中有上面的解釋。

Q8。 什麼是Docker Swarm?

您應該通過解釋Docker Swarn開始這個答案。它是Docker的本機集群,可將Docker主機池轉換為單個虛擬Docker主機。Docker Swarm提供了標準的Docker API,任何已經與Docker守護程序通信的工具都可以使用Swarm透明地擴展到多個主機。
我還將建議您包括一些受支持的工具:

  • 獨庫
  • Docker撰寫
  • Docker機器
  • jenkins

Q9。Dockerfile的作用是什麼?

根據我的回答,應該從解釋Dockerfile的使用開始。Docker可以通過閱讀Dockerfile中的指令來自動構建映像。
現在,我建議您給Dockerfle一個小定義。Dockerfile是一個文本文檔,其中包含用戶可以在命令行上調用以組裝映像的所有命令。使用docker build的用戶可以創建自動執行的構建,該構建可以連續執行多個命令行指令。

Q10。 我可以在Docker中的撰寫文件中使用json而不是yaml嗎?

您可以將json而不是yaml用於撰寫文件,以將json文件與compose一起使用,指定要使用的文件名,例如:

docker-compose -f docker-compose.json up

Q11。 告訴我們您過去使用Docker的方式嗎?

說明您如何使用Docker來幫助快速部署。說明您如何編寫Docker腳本並將Docker與其他工具(如Puppet,Chef或Jenkins)一起使用。如果您以前沒有使用過Docker的實踐經驗,也沒有使用過類似領域其他工具的經驗,請誠實並進行相同的解釋。在這種情況下,就功能而言,是否可以將其他工具與Docker進行比較是有意義的。

Q12。如何創建Docker容器?

我建議您直接回答。我們可以通過以下命令使用Docker映像創建Docker容器:
**docker run -t -i <映像名稱> <命令名稱>

**此命令將創建並啟動容器。
您還應該添加,如果要檢查主機上所有運行容器的列表以及狀態,請使用以下命令:
docker ps -a

Q13。如何停止並重新啟動Docker容器?

為了停止Docker容器,您可以使用以下命令:
docker stop <容器ID>
現在要重新啟動Docker容器,您可以使用:
docker restart <容器ID>

Q14。Docker容器可擴展到多遠?

諸如Google和Twitter之類的大型Web部署以及諸如Heroku和dotCloud之類的平台提供商都基於容器技術運行,並行運行的容器數以十萬甚至數百萬計。

Q15。Docker在什麼平台上運行?

首先,我將說Docker僅在Linux和Cloud平台上運行,然後再提及以下Linux供應商:

  • Ubuntu 12.04、13.04等
  • Fedora 19/20 +
  • RHEL 6.5+
  • CentOS 6以上
  • Gentoo
  • ArchLinux
  • openSUSE 12.3+
  • CRUX 3.0+

云:

  • Amazon EC2
  • Google Compute Engine
  • Microsoft Azure
  • Rackspace
  • Alibaba

Q16。Docker容器退出時是否會丟失數據?

您可以這樣說:不,當Dcoker容器退出時,不會丟失數據。應用程序寫入磁盤的所有數據都會保留在其容器中,直到您明確刪除該容器為止。即使在容器停止後,該容器的文件系統仍然存在。

歡迎關注 Java架構師社區公眾號.
本文轉載自Java架構師必看 ,更多內容點擊查看!

Tags: