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

點擊上方「全棧程序員社區」,星標公衆號
程序員

重磅乾貨,第一時間送達


Q1。什麼是容器?

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

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

如下是容器化相對於虛擬化的優點:面試

  • 容器提供實時配置和可伸縮性,但虛擬機提供緩慢的配置spring

  • 與虛擬機相比,容器輕巧docker

  • 與容器相比,VM的性能有限json

  • 與VM相比,容器具備更好的資源利用率c#

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

下面給出一些區別。確保在回答中包括如下差別:微信

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.0四、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容器退出時,不會丟失數據。應用程序寫入磁盤的全部數據都會保留在其容器中,直到您明確刪除該容器爲止。即便在容器中止後,該容器的文件系統仍然存在。


【14】進大廠必須掌握的面試題-持續監控面試


【13】進大廠必須掌握的面試題-配置管理面試


【12】進大廠必須掌握的面試題-持續測試面試


【11】進大廠必須掌握的面試題-持續集成面試


【10】進大廠必須掌握的面試題-版本控制面試


【9】進大廠必須掌握的面試題-DevOps面試


【8】進大廠必須掌握的面試題-Java面試-異常和線程


【7】進大廠必須掌握的面試題-Java面試-Jsp


【6】進大廠必須掌握的面試題-Hibernate


【5】進大廠必須掌握的面試題-Java面試-spring


【4】進大廠必須掌握的面試題-Java面試-jdbc


本文分享自微信公衆號 - 全棧程序員社區(mush_it)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索