Java面試基礎 -- Docker篇

1.什麼是Docker?
Docker是一個容器化平臺,它以容器的形式將您的應用程序及其全部依賴項打包在一塊兒,以確保您的應用程序在任何環境中無縫運行。

2.什麼是Docker鏡像?
Docker鏡像是Docker容器的源代碼。換句話說,Docker鏡像用於建立容器。使用build命令建立鏡像,而且在使用run啓動時它們將生成容器。鏡像存儲在Docker註冊表中,registry.hub.docker.com由於它們可能變得很是大,鏡像被設計爲由其餘鏡像層組成,容許在經過網絡傳輸鏡像時發送最少許的數據。

3.什麼是Docker容器?
Docker容器包括應用程序及其全部依賴項,但與其餘容器共享內核,在主機操做系統的用戶空間中做爲獨立進程運行。Docker容器不依賴於任何特定的基礎架構:它們能夠在任何計算機,任何基礎架構和任何雲中運行。

4.什麼是DockerHub?
Docker hub是一個基於雲的註冊表服務,容許您連接到代碼存儲庫,構建映像並測試它們,存儲手動推送的鏡像以及指向Docker雲的連接,以便您能夠將鏡像部署到主機。它爲整個開發流程中的容器發現,分發和變動管理,用戶和團隊協做以及工做流自動化提供了集中資源。

5.Docker容器的幾種狀態?
運行、已暫停、從新啓動、已退出

6.什麼是虛擬化?
虛擬化容許您在同一硬件上運行兩個徹底不一樣的操做系統。每一個客戶操做系統都經歷了引導,加載內核等全部過程。您能夠擁有很是嚴格的安全性,例如,客戶操做系統沒法徹底訪問主機操做系統或其餘客戶,從而徹底混亂。
能夠基於虛擬化方法如何模仿客戶操做系統的硬件並模擬客戶操做環境來對虛擬化方法進行分類。主要有三種類型的虛擬化:
  • 仿真
  • 半虛擬化
  • 基於容器的虛擬化

7.什麼是Docker Swarm?
Docker Swarm是Docker的羣集管理工具。它將Docker主機池轉變爲一個虛擬Docker主機。Docker Swarm提供標準的Docker API,任何已經與Docker守護進程通訊的工具均可以使用Swarm擴展到多個主機。

8. CI(持續集成)服務器的功能是什麼?
CI功能就是在每次提交以後不斷地集成全部提交到存儲庫的代碼,並編譯檢查錯誤

9.Docker經常使用命令?
docker pull          拉取或者更新指定鏡像
docker push          將鏡像推送至遠程倉庫
docker rm            刪除容器
docker rmi           刪除鏡像
docker images        列出全部鏡像
docker ps            列出全部正在運行的容器
docker ps -a         列出全部的容器
docker inspect     查看鏡像的詳細信息

 


10.Dockerfile常見的指令有哪些?
FROM:爲後續指令設置基本鏡像,在每一個有效的Dockerfile中,FROM是第一條指令;
LABEL:功能是爲鏡像指定標籤
RUN:運行指定的命令,使用每一個RUN命令,咱們在圖像上添加一些內容;
CMD:容器啓動時要運行的命令,提供執行容器的默認值,若是包含多個CMD命令,只使用最後一個指令;

11.如何監控生產中的Docker?
能夠經過docker stats和docker events等工具監控生產中的Docker:
  • Docker stats:當咱們使用容器ID調用docker stats時,咱們得到容器的CPU,內存使用狀況等。它相似於Linux中的top命令。
  • Docker events:Docker events是一個命令,用於查看Docker守護程序中正在進行的任務。
一些常見的Docker事件是:attach,commit,die,detach,rename,destroy等。 咱們還能夠使用各類選項來限制或過濾咱們感興趣的事件

12.Dockerfile命令COPY和ADD有什麼區別?
通常而言,雖然ADD而且COPY在功能上相似,可是首選COPY。
那是由於它比ADD更易懂。COPY僅支持將本地文件複製到容器中,而且一些tar文件不會自動解壓,而ADD具備一些功能(如僅限本地的tar提取和遠程URL支持),這些功能並非很明顯。所以,ADD的最佳用途是將本地tar文件自動提取到鏡像中,如ADD rootfs.tar.xz /。

13.如何使用Docker構建和環境無關的系統?
有三個主要功能有助於實現這一目標:
  • 環境變量注入
  • 只讀文件系統

原文出處:https://www.cnblogs.com/yzh-blog/p/11670166.htmlhtml

相關文章
相關標籤/搜索