原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3
原文做者:Saurabh Kulshrestha
翻譯君:CODING 戴維奧普斯面試
讓咱們看看你對容器和虛擬機的瞭解程度。docker
容器提供了從開發人員的筆記本電腦到測試環境、從類生產環境到生產環境一致的運行環境。json
接下來給出容器的定義,容器由一個完整的運行環境組成:將一個應用程序,以及它全部的依賴項、庫和其餘二進制文件,以及運行它所需的配置文件打包到一塊兒。將應用平臺及其依賴項容器化,能夠消除操做系統版本和底層基礎架構間的差別。網絡
如下是容器化相對於虛擬化的優點:架構
如下是一些不一樣之處。請確保在你的回答中包含這些差別:工具
Docker 鏡像是 Docker 容器的來源,換句話說,Docker 鏡像用於建立容器。使用 build 命令建立鏡像,當開始運行時,它們將生成一個容器。鏡像存儲在 Docker 註冊表中,如 registry.hub.docker.com,由於它們可能變得很是大,鏡像被設計成由其餘鏡像層組成,容許在經過網絡傳輸鏡像時發送最小的數據量。性能
提示:請關注 Dockerhub,以便回答有關預可用鏡像的問題。測試
這是一個很是重要的問題,因此請確保回答不偏離主題,我建議你遵循如下格式:
Docker 容器包括應用程序及其全部依賴項,但與其餘容器共享內核,在主機操做系統的用戶空間中做爲獨立進程運行。Docker 容器不綁定於任何特定的基礎架構:它們能夠在任何計算機、任何基礎架構和任何雲上運行。ui
如今解釋如何建立 Docker 容器:能夠經過建立 Docker 鏡像而後運行它來建立 Docker 容器,也可使用 Dockerhub 上已存在的 Docker 鏡像。
Docker 容器基本上是 Docker 鏡像的運行時實例。操作系統
Docker Hub 是一個基於雲的註冊表服務,容許你連接到代碼倉庫,構建並測試你的鏡像,存儲手動推送的鏡像以及指向 Docker 雲的連接,以便你能夠將鏡像部署到主機。它爲整個開發流程中的容器鏡像發現、分發和變動管理、用戶和團隊協做以及工做流自動化提供了集中的資源管理。
據我所知,你的答案應該包括如下幾點:
Docker 容器易於在雲上部署。與其餘技術相比,它能夠在相同硬件上運行更多應用程序,使開發人員能夠輕鬆地快速建立可當即運行的容器化應用程序,並使管理和部署應用程序變得更加容易。你甚至能夠與你的應用程序共享容器。
你也能夠補充更多要點,但要確保上述內容在你的回答中。
它是 Docker 的本地集羣,它將 Docker 主機池轉換爲單個虛擬 Docker 主機。Docker Swarm 提供標準的 Docker API,任何已經與 Docker 守護進程通訊的工具均可以使用 Swarm 透明地擴展到多個主機。
我還建議你說起一些支持的工具:
Docker 能夠經過從 Dockerfile 中讀取指令來自動構建鏡像。
Dockerfile 是一個配置文件,其中包含用戶能夠在命令行上調用以組合鏡像的全部命令。使用 Docker 構建用戶能夠建立一個連續執行多個命令行指令的自動構建。
如今可能會有幾個問題來測試你在 Docker 使用上的經驗。
你可使用 json 替代 yaml 來做爲你的 compose 文件,使用帶有 compose 的 json 文件,請指定文件名,例如:
docker-compose -f docker-compose.json up
這裏須要解釋你如何使用 Docker 來幫助進行快速部署,以及如何編寫 Docker 腳本,並配合其餘工具如 Puppet、Chef 或 Jenkins 等來使用 Docker。若是你在 Docker 方面缺少以往的實踐經驗,可是在相似的領域中有過使用其餘工具的經驗,請誠實地告知並解釋相同的內容。在這種狀況下,若是您能夠將其餘工具與 Docker 在功能方面進行比較,這是有意義的。
關於這個我建議你給出一個直觀的回答——可使用如下命令使用 Docker 鏡像建立 Docker 容器:
docker run -t -i
此命令將建立並啓動容器。
你還應該提到,若是要檢查主機上全部狀態爲正在運行的容器的列表,須要使用如下命令:
docker ps -a
要中止 Docker 容器,可使用如下命令:
docker stop
如今從新啓動 Docker 容器,可使用如下命令:
docker restart
像 Google 和 Twitter 這樣的大型網絡部署,以及像 Heroku 和 DotCloud 這樣的平臺供應商都運行在容器技術上,規模達到幾十萬甚至數百萬個容器並行運行。
首先,我會說 Docker 一般在 Linux 和雲平臺上運行,而後我會提到如下 Linux 供應商:
你能夠這樣回答:當 Docker 容器退出時,我不會丟失個人數據。在你明確刪除容器前,應用程序寫入磁盤的任何數據都將保留在其容器中。即便在容器中止後,容器的文件系統仍然存在。
以上就是所有內容,我但願這些問題能幫助你破解 DevOps 面試!