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

Java架構師社群發表於2020-10-29

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架構師必看 ,更多內容點選檢視!

相關文章