更新時間:2020-11-04 17:31:15 來源:動力節點 瀏覽17889次
Docker作為目前最流行的開源應用容器引擎之一,自2013年以來非常火熱,無論是從 github 上的代碼活躍度,還是Redhat在RHEL6.5中集成對Docker的支持, 就連 Google 的 Compute Engine 也支持 docker 在其之上運行。所以,Docker也理所當然的成為了目前各大互聯網公司招聘一些相關崗位的面試熱門考點,為此,我們為大家總結了10道熱門常考的Docker面試題。
1.Docker常用命令?
2.docker是怎么工作的?
實際上docker使用了常見的CS架構,也就是client-server模式,docker client負責處理用戶輸入的各種命令,比如docker build、docker run,真正工作的其實是server,也就是docker demon,值得注意的是,docker client和docker demon可以運行在同一臺機器上。
Docker是一個Client-Server結構的系統,Docker守護進程運行在主機上, 然后通過Socket連接從客戶端訪問,守護進程從客戶端接受命令并管理運行在主機上的容器。守護進程和客戶端可以運行在同一臺機器上。
3.docker容器之間怎么隔離?
Linux中的PID、IPC、網絡等資源是全局的,而NameSpace機制是一種資源隔離方案,在該機制下這些資源就不再是全局的了,而是屬于某個特定的NameSpace,各個NameSpace下的資源互不干擾。
雖然有了NameSpace技術可以實現資源隔離,但進程還是可以不受控的訪問系統資源,比如CPU、內存、磁盤、網絡等,為了控制容器中進程對資源的訪問,Docker采用control groups技術(也就是cgroup),有了cgroup就可以控制容器中進程對系統資源的消耗了,比如你可以限制某個容器使用內存的上限、可以在哪些CPU上運行等等。
有了這兩項技術,容器看起來就真的像是獨立的操作系統了。
4.容器與主機之間的數據拷貝命令?
Docker cp命令用于窮奇與主機之間的數據拷貝
主機到哦容器:docker cp /www 96f7f14e99ab:/www/
容器到主機:docker cp 96f7f14e99ab:/www /tmp
5.如何在生產中監控docker?
Docker提供docker:stats和docker事件等工具來監控生產中的docker。我們可以使用這些命令獲取重要統計數據的報告。
Docker統計數據:當我們使用容器ID調用docker stats時,我們獲得容器的CPU,內存使用情況等。它類似于Linux中的top命令。
Docker事件:docker事件是一個命令,用于查看docker守護程序中正在進行的活動流。一些常見的docker事件是:attach,commit,die,detach,rename,destroy等。我們還可以使用各種選項來限制或過濾我們感性其的事件。
6.DockerFile中的命令COPY和ADD命令有什么區別?
COPY和ADD的區別時COPY的SRC只能是本地文件,其他用法一致。
7.一個完整的Docker由哪些部分組成?
8.進入容器的方法有哪些?
9.Docker與虛擬機有何不同?
Docker不是虛擬化方法。它依賴于實際實現基于容器的虛擬化或操作系統級虛擬化的其他工具。為此,Docker最初使用LXC驅動程序,然后移動到libcontainer現在重命名為runc。Docker主要專注于在應用程序容器內自動部署應用程序。應用程序容器旨在打包和運行單個服務,而系統容器則設計為運行多個進程,如虛擬機。因此,Docker被視為容器化系統上的容器管理或應用程序部署工具。
(1)與虛擬機不同,容器不需要引導操作系統內核,因此可以在不到一秒的時間內創建容器。此功能使基于容器的虛擬化比其他虛擬化方法更加獨特和可取。
由于基于容器的虛擬化為主機增加了很少或沒有開銷,因此基于容器的虛擬化具有接近本機的性能
(2)對于基于容器的虛擬化,與其他虛擬化不同,不需要其他軟件。
主機上的所有容器共享主機的調度程序,從而節省了額外資源的需求。
(3)與虛擬機映像相比,容器狀態(Docker或LXC映像)的大小很小,因此容器映像很容易分發。
(4)容器中的資源管理是通過cgroup實現的。Cgroups不允許容器消耗比分配給它們更多的資源。雖然主機的所有資源都在虛擬機中可見,但無法使用。
這可以通過在容器和主機上同時運行top或htop來實現。所有環境的輸出看起來都很相似。
10.什么是聯合文件系統(UnionFS)?
docker的鏡像實際上由一層一層的文件系統組成,這種層級的文件系統就是UnionFS。UnionFS是一種分層、輕量級并且高性能的文件系統。聯合加載會把各層文件系統疊加起來,這樣最終的文件系統會包含所有底層的文件和目錄。
以上就是為大家總結的10道Docker面試題,涵蓋了Docker的大部分考點,當然僅這10道Docker面試題對于全面掌握Docker的所有知識還遠遠不夠,而且java面試也不僅只考Docker這一個知識點,真正想要通過面試還是要打好Java基礎,在海量Java面試題里奮戰,才能成功拿到你想要的offer。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習