Docker 面試題
Docker?
Docker是一個容器化平台,它以容器的形式將您的應用程序及其所有依賴項打包在一起,以確保您的應用程序在任何環境中無縫運行。
CI(持續集成)服務器的功能是什么?
CI功能就是在每次提交之后不斷地集成所有提交到存儲庫的代碼,並編譯檢查錯誤
Docker鏡像?
Docker鏡像是Docker容器的源代碼,Docker鏡像用於創建容器。使用build命令創建鏡像
Docker容器?
Docker容器包括應用程序及其所有依賴項,作為操作系統的獨立進程運行
Docker容器有幾種狀態?
Docker容器可以有四種狀態:運行、已暫停、重新啟動、已退出
Docker使用流程
1)創建Dockerfile后,您可以構建它以創建容器的鏡像
2)推送或拉取鏡像。
Dockerfile中最常見的指令是什么?
Dockerfile中的一些常用指令如下:
FROM:指定基礎鏡像
LABEL:功能是為鏡像指定標簽
RUN:運行指定的命令
CMD:容器啟動時要運行的命令
Dockerfile中的命令COPY和ADD命令有什么區別?
COPY與ADD的區別COPY的<src>只能是本地文件,其他用法一致
docker常用命令?
docker pull 拉取或者更新指定鏡像
docker push 將鏡像推送至遠程倉庫
docker rm 刪除容器
docker rmi 刪除鏡像
docker images 列出所有鏡像
docker ps 列出所有容器
DevOps有哪些優勢?
技術優勢:更快地解決問題
商業利益:有更多時間可以增加價值(而不是修復/維護)
什么是虛擬化?
主要有三種類型的虛擬化:
- 仿真
- 半虛擬化
- 基於容器的虛擬化
Docker與虛擬機有何不同?
Docker不是虛擬化方法。它依賴於實際實現基於容器的虛擬化或操作系統級虛擬化的其他工具。
容器內部機制?
每個容器都在自己的命名空間中運行,但使用與所有其他容器完全相同的內核。發生隔離是因為內核知道分配給進程的命名空間,並且在API調用期間確保進程只能訪問其自己的命名空間中的資源。
什么是Docker Hub?
Docker hub是一個基於雲的注冊表服務,允許您鏈接到代碼存儲庫,構建鏡像並測試它們,存儲手動推送的鏡像以及指向Docker雲的鏈接,以便您可以將鏡像部署到主機。它為整個開發流程中的容器鏡像發現,分發和變更管理,用戶和團隊協作以及工作流自動化提供了集中資源。
鏡像與 UnionFS
Linux 的命名空間和控制組分別解決了不同資源隔離的問題,前者解決了進程、網絡以及文件系統的隔離,后者實現了 CPU、內存等資源的隔離,但是在 Docker 中還有另一個非常重要的問題需要解決 - 也就是鏡像。
Docker 鏡像其實本質就是一個壓縮包,我們可以使用命令將一個 Docker 鏡像中的文件導出,你可以看到這個鏡像中的目錄結構與 Linux 操作系統的根目錄中的內容並沒有太多的區別,可以說 Docker 鏡像就是一個文件。
30.1.4.7. 存儲驅動
Docker 使用了一系列不同的存儲驅動管理鏡像內的文件系統並運行容器,這些存儲驅動與
Docker 卷(volume)有些不同,存儲引擎管理着能夠在多個容器之間共享的存儲。