## **docker面試題**
### **1、什么Docker?**
答:Docker是一個容器化平臺,它以容器的形式將您的應用程序及其所有依賴項打包在一起,以確保您的應用程序在任何環境中無縫運行。
### **2、Docker與虛擬機的不同點在哪里?**
答:Docker不是虛擬化方法。它依賴于實際實現基于容器的虛擬化或操作系統級虛擬化的其他工具。為此,Docker最初使用LXC驅動程序,然后移動到libcontainer現在重命名為runc。Docker主要專注于在應用程序容器內自動部署應用程序。應用程序容器旨在打包和運行單個服務,而系統容器則設計為運行多個進程,如虛擬機。因此,Docker被視為容器化系統上的容器管理或應用程序部署工具。
### **3、Docker容器有幾種狀態?**
答:有四種狀態:運行、已暫停、重新啟動、已退出。
### **4、Dockerfile中最常見的指令是什么?**
答:FROM:指定基礎鏡像;LABEL:功能是為鏡像指定標簽;RUN:運行指定的命令;CMD:容器啟動時要運行的命令。
### **5、Dockerfile中的命令COPY和ADD命令有什么區別?**
答:一般而言,雖然ADD并且COPY在功能上類似,但是首選COPY。
那是因為它比ADD更易懂。COPY僅支持將本地文件復制到容器中,而ADD具有一些功能(如僅限本地的tar提取和遠程URL支持),這些功能并不是很明顯。因此,ADD的最佳用途是將本地tar文件自動提取到鏡像中,如ADD rootfs.tar.xz /。
### **6、什么是Docker鏡像?**
答:Docker鏡像是Docker容器的源代碼。換句話說,Docker鏡像用于創建容器。使用build命令創建鏡像,并且在使用run啟動時它們將生成容器。鏡像存儲在Docker注冊表中,registry.hub.docker.com因為它們可能變得非常大,鏡像被設計為由其他鏡像層組成,允許在通過網絡傳輸鏡像時發送最少量的數據。
### **7、解釋基本的Docker使用工作流程是怎樣的?**
答:(1)從Dockerfile開始,Dockerfile是鏡像的源代碼;(2)創建Dockerfile后,可以構建它以創建容器的鏡像。圖像只是“源代碼”的“編譯版本”,即Dockerfile;(3)獲得容器的鏡像后,應使用注冊表重新分發容器。注冊表就像一個git存儲庫,可以推送和拉取鏡像;接下來,可以使用該圖像來運行容器。在許多方面,正在運行的容器與虛擬機(但沒有虛擬機管理程序)非常相似。
### **8、如何在生產中監控Docker?**
答:Docker提供docker stats和docker事件等工具來監控生產中的Docker。我們可以使用這些命令獲取重要統計數據的報告。
Docker統計數據:當我們使用容器ID調用docker stats時,我們獲得容器的CPU,內存使用情況等。它類似于`Linux`中的top命令。
Docker事件:Docker事件是一個命令,用于查看Docker守護程序中正在進行的活動流。一些常見的Docker事件是:attach,commit,die,detach,rename,destroy等。
### **9、Docker如何在非Linux系統中運行容器?**
答:通過添加到Linux內核版本2.6.24的名稱空間功能,可以實現容器的概念。容器將其ID添加到每個進程,并向每個系統調用添加新的訪問控制檢查。它由clone()系統調用訪問,該調用允許創建先前全局命名空間的單獨實例。
### **10、什么類型的應用程序無狀態或有狀態更適合Docker容器?**
答:最好為Docker Container創建無狀態應用程序。我們可以從應用程序中創建一個容器,并從應用程序中取出可配置的狀態參數。現在我們可以在生產環境和具有不同參數的QA環境中運行相同的容器。這有助于在不同場景中重用相同的鏡像。另外,無狀態應用程序比有狀態應用程序更容易使用Docker容器進行擴展。
- PHP篇
- 函數傳值和傳引用的區別
- 簡述PHP的垃圾回收機制
- 簡述CGI、FAST-CGI、PHP-FPM的關系
- 常見正則表達式
- 多進程寫文件,如何保證都寫成功
- php支持回調函數的數組函數
- MySQL篇
- MySQL的兩種存儲引擎區別
- 事務的四大特性
- 數據庫事務隔離級別
- 什么是索引
- 索引有哪些數據結構,優缺點
- 索引的一些潛規則
- SQL的優化方案
- 簡述MySQL的鎖機制
- 死鎖是怎么產生的?怎么解決?
- 簡述MySQL的主從復制過程,延遲問題怎么解決
- 分布式事務的解決方案
- 數據庫中間件MyCat
- Linux篇
- Linux常用命令
- 對日志文件的IP出現的次數進行統計,并顯示次數最多的前5名
- WEB篇
- 跨域是怎么產生的,如何解決跨域
- Redis篇
- redis介紹
- redis和memcached區別
- redis的持久化方案
- 緩存穿透、擊穿、雪崩、預熱、更新、降級
- 網絡篇
- 計算機網絡體系結構
- 簡述TCP的三次握手、四次揮手過程
- UDP、TCP 區別,適用場景
- HTTP常見狀態碼含義
- 設計模式篇
- 單例模式
- 簡單工廠模式
- 抽象工廠模式
- 觀察者模式
- 策略模式
- 注冊模式
- 適配器模式
- 安全篇
- 跨站腳本攻擊(XSS)
- 跨站點請求偽造(CSRF)
- SQL 注入
- 應用層拒絕服務攻擊
- PHP安全
- 運維篇
- docker面試題
- 消息隊列篇
- 架構篇
- 數據結構與算法篇