- 相關(guān)推薦
docker常見(jiàn)面試題及答案
在日常學(xué)習和工作生活中,我們經(jīng)常跟試題打交道,試題是命題者根據一定的考核需要編寫(xiě)出來(lái)的。那么問(wèn)題來(lái)了,一份好的試題是什么樣的呢?下面是小編為大家整理的docker常見(jiàn)面試題及答案,僅供參考,希望能夠幫助到大家。
docker常見(jiàn)面試題及答案 1
一、什么Docker
Docker是一個(gè)容器化平臺,它以容器的形式將您的應用程序及其所有依賴(lài)項打包在一起,以確保您的應用程序在任何環(huán)境中無(wú)縫運行。
二、Docker與虛擬機有何不同
Docker不是虛擬化方法。它依賴(lài)于實(shí)際實(shí)現基于容器的虛擬化或操作系統級虛擬化的其他工具。為此,Docker最初使用LXC驅動(dòng)程序,然后移動(dòng)到libcontainer現在重命名為runc。Docker主要專(zhuān)注于在應用程序容器內自動(dòng)部署應用程序。應用程序容器旨在打包和運行單個(gè)服務(wù),而系統容器則設計為運行多個(gè)進(jìn)程,如虛擬機。因此,Docker被視為容器化系統上的容器管理或應用程序部署工具。
A容器不需要引導操作系統內核,因此可以在不到一秒的時(shí)間內創(chuàng )建容器。此功能使基于容器的虛擬化比其他虛擬化方法更加獨特和可取。 B由于基于容器的虛擬化為主機增加了很少或沒(méi)有開(kāi)銷(xiāo),因此基于容器的虛擬化具有接近本機的性能。 C對于基于容器的虛擬化,與其他虛擬化不同,不需要其他軟件。 D主機上的所有容器共享主機的調度程序,從而節省了額外資源的需求。 E與虛擬機映像相比,容器狀態(tài)(Docker或LXC映像)的大小很小,因此容器映像很容易分發(fā)。 F容器中的資源管理是通過(guò)cgroup實(shí)現的。Cgroups不允許容器消耗比分配給它們更多的資源。雖然主機的所有資源都在虛擬機中可見(jiàn),但無(wú)法使用。這可以通過(guò)在容器和主機上同時(shí)運行top或htop來(lái)實(shí)現。所有環(huán)境的輸出看起來(lái)都很相似。
三、什么是Docker鏡像
Docker鏡像是Docker容器的源代碼,Docker鏡像用于創(chuàng )建容器。使用build命令創(chuàng )建鏡像。
四、什么是Docker容器
Docker容器包括應用程序及其所有依賴(lài)項,作為操作系統的獨立進(jìn)程運行。
五、Docker容器有幾種狀態(tài)
四種狀態(tài):運行、已暫停、重新啟動(dòng)、已退出。
Dockerfile中最常見(jiàn)的指令是什么FROM:指定基礎鏡像LABEL:功能是為鏡像指定標簽RUN:運行指定的命令CMD:容器啟動(dòng)時(shí)要運行的命令
六、Dockerfile中的命令COPY和ADD命令有什么區別
COPY與ADD的區別COPY的'SRC只能是本地文件,其他用法一致
七、docker常用命令
docker pull拉取或者更新指定鏡像docker push將鏡像推送至遠程倉庫docker rm刪除容器docker rmi刪除鏡像docker images列出所有鏡像docker ps列出所有容器
八、容器與主機之間的數據拷貝命令
docker cp命令用于容器與主機之間的數據拷貝主機到容器:docker cp /www 96f7f14e99ab:/www/容器到主機:docker cp 96f7f14e99ab:/www /tmp/
啟動(dòng)nginx容器(隨機端口映射),并掛載本地文件目錄到容器html的命令docker run —d —P ——name nginx2 —v /home/nginx:/usr/share/nginx/html nginx
九、解釋一下dockerfile的ONBUILD指令
當鏡像用作另一個(gè)鏡像構建的基礎時(shí),ONBUILD指令向鏡像添加將在稍后執行的觸發(fā)指令。如果要構建將用作構建其他鏡像的基礎的鏡像(例如,可以使用特定于用戶(hù)的配置自定義的應用程序構建環(huán)境或守護程序),這將非常有用。
十、什么是Docker Swarm
Docker Swarm是Docker的本機群集。它將Docker主機池轉變?yōu)閱蝹(gè)虛擬Docker主機。Docker Swarm提供標準的Docker API,已經(jīng)與Docker守護進(jìn)程通信的工具都可以使用Swarm透明地擴展到多個(gè)主機。
十一、如何在生產(chǎn)中監控Docker
Docker提供docker stats和docker事件等工具來(lái)監控生產(chǎn)中的Docker。我們可以使用這些命令獲取重要統計數據的報告。 Docker統計數據:當我們使用容器ID調用docker stats時(shí),我們獲得容器的CPU,內存使用情況等。它類(lèi)似于Linux中的top命令。 Docker事件:Docker事件是一個(gè)命令,用于查看Docker守護程序中正在進(jìn)行的活動(dòng)流。一些常見(jiàn)的Docker事件是:attach,commit,die,detach,rename,destroy等。我們還可以使用各種選項來(lái)限制或過(guò)濾我們感興趣的事件
十二、Docker如何在非Linux系統中運行容器
通過(guò)添加到Linux內核版本2.6.24的名稱(chēng)空間功能,可以實(shí)現容器的概念。容器將其ID添加到每個(gè)進(jìn)程,并向每個(gè)系統調用添加新的訪(fǎng)問(wèn)控制檢查。它由clone( )系統調用訪(fǎng)問(wèn),該調用允許創(chuàng )建先前全局命名空間的單獨實(shí)例。如果由于Linux內核中可用的功能而可以使用容器,那么顯而易見(jiàn)的問(wèn)題是非Linux系統如何運行容器。Docker for Mac和Windows都使用Linux VM來(lái)運行容器。Docker Toolbox用于在Virtual Box VM中運行容器。但是,最新的Docker在Windows中使用Hyper—V,在Mac中使用Hypervisor、framework。
docker常見(jiàn)面試題及答案 2
一、基礎概念
什么是Docker?
Docker是一個(gè)開(kāi)源的容器化平臺,它允許開(kāi)發(fā)者將應用及其依賴(lài)打包到一個(gè)輕量級、可移植的容器中,從而在任何Docker運行的環(huán)境中實(shí)現一致的運行。
Docker的三大核心是什么?
Docker的三大核心是鏡像(Image)、容器(Container)和倉庫(Repository)。鏡像是創(chuàng )建容器的只讀模板,容器是鏡像的運行實(shí)例,倉庫則用于存放、分享和管理Docker鏡像。
Docker與虛擬機的區別是什么?
Docker容器在操作系統級別進(jìn)行虛擬化,共享宿主機的內核,而虛擬機在硬件級別進(jìn)行虛擬化,擁有獨立的內核。因此,容器通常更輕量級、啟動(dòng)更快,資源占用更少。
二、操作與管理
如何創(chuàng )建一個(gè)新的Docker容器?
可以使用docker run
命令來(lái)從鏡像創(chuàng )建容器。例如,docker run -d -p 80:80 nginx
會(huì )基于nginx鏡像啟動(dòng)一個(gè)新的容器,并將容器的80端口映射到宿主機的80端口。
如何查看當前運行的容器?
使用docker ps
命令可以查看當前運行的容器。加上-a
參數可以看到所有容器,包括未運行的。
如何停止和啟動(dòng)一個(gè)容器?
使用docker stop <容器ID或名稱(chēng)>
可以停止容器,使用docker start <容器ID或名稱(chēng)>
可以啟動(dòng)容器。
如何進(jìn)入一個(gè)正在運行的容器?
可以使用docker exec -it <容器ID或名稱(chēng)> /bin/bash
命令進(jìn)入容器。這里-it
表示交互式終端。
如何刪除一個(gè)鏡像或容器?
使用docker rmi <鏡像ID>
刪除鏡像,使用docker rm <容器ID>
刪除容器。如果容器正在運行,首先需要停止容器。
如何查看容器的日志輸出?
使用docker logs <容器ID或名稱(chēng)>
可以查看容器的日志輸出。
三、網(wǎng)絡(luò )與存儲
Docker的默認網(wǎng)絡(luò )模式有哪些?
Docker的.默認網(wǎng)絡(luò )模式包括bridge、none、host和container。每種模式提供不同級別的網(wǎng)絡(luò )隔離和互連。
如何創(chuàng )建一個(gè)Docker網(wǎng)絡(luò )?
使用docker network create
命令可以創(chuàng )建Docker網(wǎng)絡(luò )。例如,docker network create --driver bridge my_bridge_network
創(chuàng )建了一個(gè)bridge類(lèi)型的網(wǎng)絡(luò )。
容器之間如何通信?
容器可以通過(guò)Docker網(wǎng)絡(luò )進(jìn)行通信。在同一網(wǎng)絡(luò )中的容器可以使用容器名稱(chēng)互相解析,實(shí)現容器間通信。
Docker卷是什么?如何創(chuàng )建和使用?
Docker卷是一種持久化存儲數據的機制。它獨立于容器的生命周期存在,可以用來(lái)存儲容器的數據?梢允褂docker volume create
命令創(chuàng )建卷。使用卷的一個(gè)常見(jiàn)場(chǎng)景是在docker run
命令中通過(guò)-v
選項將卷掛載到容器內部。
四、Dockerfile與鏡像構建
什么是Dockerfile?
Dockerfile是一個(gè)文本文件,包含了構建Docker鏡像所需的一系列指令和命令。
如何使用Dockerfile構建鏡像?
使用docker build
命令構建鏡像。例如,docker build -t myimage:latest .
會(huì )根據當前目錄下的Dockerfile構建名為myimage、標簽為latest的鏡像。
如何查看本地鏡像列表?
使用docker images
命令可以查看本地鏡像列表。
五、高級話(huà)題
如何實(shí)現Docker容器的自動(dòng)重啟?
在創(chuàng )建容器時(shí),可以通過(guò)--restart
參數來(lái)設置容器的重啟策略。例如,--restart=always
表示容器總是重啟。
如何限制容器的資源使用?
可以使用docker run
命令的--memory
(內存)、--cpus
(CPU)等選項來(lái)限制容器的資源使用。
如何清理Docker的懸掛鏡像、容器、網(wǎng)絡(luò )和構建緩存?
使用docker system prune
命令可以清理懸掛的鏡像、容器、網(wǎng)絡(luò )和構建緩存。
什么是Docker Compose?
Docker Compose是一個(gè)工具,用于定義和運行多容器Docker應用程序。它允許使用YAML文件來(lái)配置應用程序的服務(wù)、網(wǎng)絡(luò )和卷。
這些面試題涵蓋了Docker的基礎概念、操作與管理、網(wǎng)絡(luò )與存儲、Dockerfile與鏡像構建以及高級話(huà)題等方面。掌握這些問(wèn)題和答案,對于準備Docker相關(guān)的面試將大有幫助。
【docker常見(jiàn)面試題及答案】相關(guān)文章:
常見(jiàn)軟件測試面試題06-08
面試題目及答案03-08
常見(jiàn)面試題解析11-01
求職動(dòng)機面試題及答案03-04
求職面試題目及答案11-07
校長(cháng)面試題目及答案07-04
文秘面試題目及答案03-21
c語(yǔ)言面試題及答案02-27
web前端面試題及答案05-12