容器面試題
一、docker面試題
1、docker是什么,和虛擬機(jī)的區(qū)別是什么?
-
docker是一個(gè)基于容器技術(shù)開源平臺(tái),用于打包,分發(fā),運(yùn)行應(yīng)用,容器提供輕量級(jí),快速的虛擬環(huán)境
-
區(qū)別
-
vm是整套的操作系統(tǒng)
-
docker是共享主機(jī)內(nèi)核,資源消耗更低,啟動(dòng)的非常快
-
docker啟動(dòng)快
-
占用資源少
-
隔離性
-
可移植性
-
2、docker的核心組件有哪些?
# Docker Engine:運(yùn)行容器的引擎;
# Docker Image:容器鏡像,包含運(yùn)行環(huán)境和應(yīng)用;
# Docker Container:容器,鏡像運(yùn)行后的實(shí)例;
# Dockerfile:構(gòu)建鏡像的配置文件;
# Docker Hub/Registry:鏡像倉庫,用于鏡像的分發(fā)和存儲(chǔ);
# Docker Compose:編排多個(gè)容器服務(wù)的工具。
3、docker鏡像和容器的區(qū)別是什么?
-
鏡像是只讀的模版,類似與快照
-
容器是運(yùn)行鏡像的實(shí)例,可以讀寫操作,是一個(gè)運(yùn)行時(shí)環(huán)境
4、Dockerfile 是什么?常用的指令有哪些?
- 是定義構(gòu)建鏡像的腳本文件
# from 基礎(chǔ)鏡像
# run 運(yùn)行命令
# copy/add 復(fù)制文件
# expose 聲明端口
5、如何查看本地的鏡像和容器
# docker images
# docker ps
6、Docker Volume 有什么作用?如何使用?
- 用于主機(jī)和容器之間共享數(shù)據(jù)或者持久化數(shù)據(jù)的
7、如何暴露容器的中端口給主機(jī)
- 通過使用-p 宿主機(jī)端口:容器端口來實(shí)現(xiàn)
8、簡(jiǎn)述 Docker Compose 的作用和基本結(jié)構(gòu)?
- 用于定義和運(yùn)行多個(gè)容器的應(yīng)用
version: "3"
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: root
9、鏡像層(image layer)是什么?構(gòu)建時(shí)如何復(fù)用?
-
每條dockerfile指令都會(huì)生成一層,鏡像是多層疊加使用的
-
層可以被緩存復(fù)用。減少構(gòu)建時(shí)間
-
RUN可以將多個(gè)命令寫在一行上面,減少層數(shù)
10、Docker 有哪些網(wǎng)絡(luò)模式?
-
橋接模式,容器的模式網(wǎng)絡(luò)模式
-
主機(jī)網(wǎng)絡(luò),就是和主機(jī)公用網(wǎng)絡(luò)
-
自定義網(wǎng)絡(luò)
11、如何優(yōu)化 Dockerfile?
-
使用輕量級(jí)別的鏡像
-
減少層數(shù)
-
利用緩存機(jī)制
-
清理中間文件
12、如何實(shí)現(xiàn)容器間的通信
- 在同一個(gè)網(wǎng)絡(luò)中創(chuàng)建容器,容器名即為主機(jī)名,可以互相通信
13、Docker 與 Kubernetes 的關(guān)系是什么?
-
docker提供容器運(yùn)行環(huán)境
-
kubernetes是容器編排平臺(tái),可以管理多個(gè)docker容器部署
-
k8s可以使用docker作為容器運(yùn)行時(shí),或者使用containerd
14、docker compose和kuberenets
-docker compose是本地開發(fā),小型部署的容器編排工具
- kubernetes是面向生產(chǎn)環(huán)境,集群級(jí)別的容器編排平臺(tái)
15、docker優(yōu)缺點(diǎn)
-
優(yōu)點(diǎn)
-
部署方便 搭建一個(gè)環(huán)境,安裝一下,啟動(dòng)一下服務(wù)即可
-
部署安全 因?yàn)殚_發(fā)環(huán)境和測(cè)試環(huán)境的話,版本都是統(tǒng)一的,在一個(gè)統(tǒng)一的環(huán)境中,就能解決
-
隔離性好 一個(gè)機(jī)器上面,可以跑很多個(gè)服務(wù),這些依賴的配置都是不同的,每一個(gè)容器相當(dāng)于是一個(gè)隔離的環(huán)境
-
快速回滾 就是可以快速的回滾到上一個(gè)版本
-
成本低 之前的話就是需要購買一個(gè)服務(wù)器,容器就非常的輕便了
-
-
缺點(diǎn)
- 性能 一定程度的封裝和隔離,降低了性能
虛擬機(jī)與容器跑一個(gè)httpd,nginx
-
默認(rèn)的情況下,httpd,nginx在一個(gè)虛擬機(jī)上面運(yùn)行的話,因?yàn)闀?huì)占用同一個(gè)端口80,會(huì)報(bào)錯(cuò)的
-
但是容器不一樣,因?yàn)槿萜鞲綦x的是進(jìn)程,共享宿主機(jī)的內(nèi)核,每個(gè)服務(wù)(容器)分配獨(dú)立的進(jìn)程空間,也就相當(dāng)每一個(gè)進(jìn)程空間看成一個(gè)完整的操作系統(tǒng)
浙公網(wǎng)安備 33010602011771號(hào)