docker和k8s面试题

docker相关单选:1.C 2.A 3.A 4.C 5.B 6.A 7.B 8.A 9.B 10.C 11.B 12.B 13.A 14.A 15.A
多选:1.ACD 2.ABCD 3.BCD 4.ACD 5.ABCD 6.AB 7.ACD 8.ACD 9.ABC 10.BC

docker 基础笔试题
单选题 (共 15 题,每题 4 分)
1.什么是 Docker?
A.虚拟机
B.半虚拟化技术
C.开源的应用容器引擎

2.Docker 与 KVM 虚拟化技术的区别是?
A. Docker 容器启动快,资源占用小,操作系统级虚拟化技术
B. KVM 容器启动快,资源占用小,操作系统级虚拟化技术
C. 没区别

A. Docker 容器启动快,资源占用小,操作系统级虚拟化技术
  1. Namespace 在 Docker 中起到什么作用?
    A. 资源隔离
    B. 资源共享
    C. 资源限制

  2. CGroup 在 Docker 中起到什么作用?
    A. 资源隔离
    B. 资源共享
    C. 资源限制

  3. 哪个不是 Docker 架构中的组件?
    A. runc
    B. container
    C. containerd

  4. 如何搜索 Nginx 镜像?
    A. docker search nginx
    B. docker nginx search
    C. docker se nginx

  5. 如何下载 Nginx 镜像?
    A. docker nginx pull
    B. docker pull nginx
    C. docker p nginx

  6. 创建一个 Nginx 容器并放到后台启动?
    A. docke run -d nginx
    B. docker run -it nginx
    C. docker run nginx

  7. 创建一个 Nginx 容器并暴露到宿主机 80 端口访问?
    A. docker run -d 80 nginx
    B. docker run -d -p 80:80 nginx
    C. docker run -port 80:80 nginx

  8. 创建一个 Nginx 容器并加入指定网络 lnmp_net?
    A. docker run -net lnmp_net nginx
    B. docker run -n nmp_net nginx
    C. docker run --network lnmp_net nginx

  9. 怎么进入容器终端?
    A. docker exec –d nginx
    B. docker exec -it nginx /bin/bash
    C. docker exec –itd nginx

  10. 查看容器的详细信息?
    A. docker ps
    B. docker inspect
    C. docker status

  11. 容器想获取宿主机数据,例如/proc,应该用哪种方式?
    A. bind mounts
    B. tmpfs
    C. voluems

  12. 使用 dockerfile 文件构建镜像的命令是?
    A. docker build
    B. docker commit
    C. docker export

  13. Docker Swarm 是什么?
    A. Docker 官方的容器集群系统
    B. 单机编排容器
    C. 容器引擎

多选题 (共 10 题,每题 4 分)

  1. 使用 Docker 可以帮助企业解决或者改善什么问题?
    A. 提高资源利用率
    B. 当虚拟机来使用
    C. 标准化
    D. 环境一致性
使用 Docker 可以帮助企业解决或改善以下问题:

应用程序的环境一致性问题:Docker可以将应用程序及其所有依赖项(库、运行时环境等)打包在一个容器中,确保无论在开发、测试还是生产环境中,容器中的应用程序和环境都保持一致,消除了由于环境差异而引起的问题。
应用程序的快速部署和扩展:Docker容器的轻量级和快速启动特性,使得应用程序的部署和扩展变得更加简单和快速。Docker可以轻松复制和部署多个容器,实现应用程序的水平扩展,以应对高流量和大规模应用的需求。
跨平台和可移植性:Docker容器可以在不同的操作系统和平台上运行,这使得应用程序可以在不同的环境中无缝迁移,并且可以在开发人员的本地机器上进行开发和测试,然后轻松地部署到生产环境中。
资源隔离和安全性:Docker容器提供了资源隔离,每个容器都有自己的文件系统、网络和进程空间,使得应用程序能够在相互独立的环境中运行。这增强了安全性,防止容器之间的相互干扰和攻击。
简化开发和部署流程:Docker可以帮助企业简化开发和部署流程,使得应用程序能够更快地推向市场。Docker可以加速应用程序的迭代和更新,同时也降低了部署的复杂性。
总的来说,使用Docker可以帮助企业提高应用程序的可靠性、安全性和效率,降低开发、部署和运行的复杂性,同时加快产品的上市时间。
  1. Docker 架构有哪些组件? ABD
    A. docker
    B. dockerd
    C. runc
    D. containerd
Docker架构包括以下几个组件:

1. Docker Client客户端:Docker客户端是Docker命令行交互的工具,可以发送Docker API请求给Docker Daemon守护进程。
2. Docker Daemon守护进程:Docker Daemon是Docker服务的核心,它负责接收和管理Docker API请求,并调度Docker容器的创建、启动、停止和删除等操作。
3. Docker Image镜像:Docker镜像是Docker容器的基础,它包含了运行一个应用程序所需要的所有文件和资源,包括程序代码、运行时环境、依赖项等。
4. Docker Registry:Docker Registry是存储和管理Docker镜像的仓库,它提供了HTTP和HTTPS两种协议的接口,可以用来上传、下载和分享Docker镜像。
5. Docker容器:Docker容器是运行Docker镜像的基本单位,它包含了运行一个应用程序所需要的所有环境和配置。一个Docker容器包含了运行应用程序所需要的文件系统、网络、进程空间等。

此外,Docker架构还包括Docker Networking、Docker Compose、Docker Swarm等组件,用于实现Docker容器的高级功能和集群管理。
  1. Docker 的核心组件有哪些? ABC
    A. LXC
    B. CGroup
    C. UnionFS
    D. Namespace
Docker的核心组件包括以下几个:

1. Docker daemon(dockerd):后台服务进程,用于管理Docker镜像、容器、网络等资源,通过API与Docker客户端通信。
2. Docker CLI(docker):命令行界面工具,用于与Docker daemon进行通信并执行各种操作。
3. Docker Image(Dockerfile、image):用于创建Docker容器的只读模板,包含了运行应用程序所需要的文件和资源。
4. Docker Registry(Registry):用于存储和管理Docker镜像的仓库。
5. Docker Container(container):运行Docker镜像的基本单位,包含了运行应用程序所需要的所有环境和配置。

这些组件共同协作,实现了Docker容器的创建、部署、管理和运行。此外,还有其他的组件如Docker Compose、Docker Swarm等,用于实现Docker容器的高级功能和集群管理。
  1. 如何查看 Docker 安装的版本?
    A. docker info
    B. docker –help
    C. docker -v
    D. docker version
docker info : 显示 Docker 系统信息,包括镜像和容器数。
 docker version :显示 Docker 版本信息。
  1. Docker 有几种网络模式? ABCD
    A. bridge
    B. host
    C. none
    D. container
docker的四种网络模式为:1、host模式,使用“–net=host”指定;
2、container模式,用“–net=container:NAME_or_ID”指定;
3、none模式,用“–net=none”指定;
4、bridge模式。
Docker确实支持四种网络模式:

Bridge模式:这是默认的网络模式,通过Docker网络桥接设备Docker0实现。每个容器都有其独立的网络命名空间,可以相互通信。
Host模式:在这种模式下,容器直接使用宿主机的网络命名空间,与宿主机共享网络栈。容器没有自己的网络配置,因此它具有最高的网络性能。
Container模式:在这种模式下,容器会与另一个已经运行且同样使用Container网络模式的容器共享网络空间。
None模式:在这种模式下,Docker不会为容器配置任何网络接口,容器没有任何网络连接,完全隔离。
这些网络模式为Docker提供了广泛的灵活性,使得用户可以根据具体的应用场景和需求选择适合的网络设置。
  1. docker logs 查看容器的? ab
    A. 标准输出
    B. 标准错误
    C. 标准输入
    D. 都有
Docker容器的日志主要分为两个部分:标准输出和标准错误。标准输出(stdout)用于容器输出正常信息,包括应用程序的标准输出信息和访问日志信息,标准错误(stderr)用于容器输出错误信息,包括应用程序的错误输出信息、异常信息等。

常用查看Docker日志的命令
docker logs
# 查看最后100行容器日志
docker logs --tail 100 container_name

# 持续查看容器日志
docker logs -f container_name

# 显示时间戳
docker logs -t container_name
  1. Docker 提供()种方式将数据从宿主机挂载到容器中?
    A. voluems
    B. mount
    C. tmpfs
    D. bind mounts
docker有四种存储方式:
1、“默认储存”,数据保存在运行的容器中,容器删除后,数据也随之删除;
2、“volumes数据卷”;
3、“bind mounts挂载”,直接挂载主机文件系统的任何目录或文件;
4、“tmpfs mount”。
  1. 哪些是 dockerfile 的指令?
    A. FROM
    B. EXEC
    C. CMD
    D. RUN
  2. Docker 的存储驱动有哪些?
    A. AUFS
    B. Device Mapper
    C. OverlayFS
    D. EXT4
  3. Docker Compose 是什么?
    A. 容器引擎
    B. 集中管理容器
    C. 单机编排容器
    D. 容器集群系统

Kubernetes相关单选:1.C 2.C 3.B 4.B 5.C 6.B 7.A 8.B 9.B 10.B 11.A 12.A 13.A 14.C 15.A多选:1.ACD 2.ABD 3.ABC 4.ABC 5.ABD 6.BCD 7.ACD 8.AD 9.ABC 10.ABCD 11.AB 12.ABC 13.ABD 14.ABCD 15.AC

k8s 基础笔试题
单选题 (共 15 题,每题 3 分)

  1. Kubernetes 主要有哪些必备组件?
    A. apiserver/controller-manager/scheduler/kube-proxy/service/etcd
    B. kubeadm/controller-manager/kubelet/kube-proxy/scheduler/etcd
    C. apiserver/controller-manager/kubelet/kube-proxy/scheduler/etcd
  2. kubelet 主要功能?
    A. 网络代理
    B. 资源调度
    C. 容器管理
  3. kubectl 是什么?
    A. 部署集群工具
    B. 管理集群的命令行工具
    C. 创建容器工具
  4. Deployment 与 Statefulset 有什么区别?
    A. Deployment 部署有状态应用,Statefulset 部署无状态应用
    B. Deployment 部署无状态应用,Statefulset 部署有状态应用
    C. Deployment 与 Statefulset 没区别
  5. Pod 中 pause 容器是做什么用的?
    A. 初始化容器
    B. 收集其他容器信息
    C. 管理 Pod 网络
  6. 怎么限制 Pod 最大使用内存量?
    A. resources.limits.cpu
    B. resources.limits.memory
    C. resources.requests.memory
  7. 怎么扩容/缩容 Pod 副本数?
    A. kubectl scale
    B. kubectl rollout
    C. kubectl apply
  8. Service 如何关联到对应 Pod?
    A. Deployment
    B. Label
    C. Endpoint
  9. Service 是由哪个组件负责的?
    A. kubelet
    B. kube-proxy
    C. apiserver
  10. emptyDir 数据卷类型有什么作用?
    A. 挂载宿主机目录或文件到容器
    B. 在宿主机上创建一个空目录并挂载到容器
    C. 挂载现有的存储到容器
  11. Pod 删除,emptyDir 数据卷会删除吗?
    A. 会
    B. 不会
    C. 自动备份
  12. hostPath 数据卷类型有什么作用?
    A. 挂载宿主机目录或文件到容器
    B. 在宿主机上创建一个空目录并挂载到容器
    C. 挂载现有的存储到容器
  13. RBAC 是做什么的?
    A. 基于角色的访问控制
    B. 基于属性的访问控制
    C. 基于用户的访问控制
  14. ServiceAccount 做什么的?
    A. 存储敏感数据
    B. 存储服务配置
    C. 给运行的 Pod 中的进程提供一个身份访问 Kubernetes API
  15. Deployment 滚动更新实现原理?
    A. 两个 ReplicaSet 进行不断扩容/缩容,直到新 RS 扩容预期副本数,旧 RS 缩容为 0
    B. Deployment 直接对 Pod 控制,每次升级一个 Pod,直到升级所有
    C. 一个 ReplicaSet 直接对 Pod 控制,每次升级一个 Pod,直到升级所有
    多选题 (共 15 题,每题 4 分)
  16. Pod 正确说法是?
    A. K8S 的最小部署单元
    B. 一个 Pod 是一个容器
    C. Pod 由一个或多个容器组成
    D. 一个 Pod 中的多个容器在同一台 Node 运行
  17. 部署应用程序常用的几种资源对象?
    A. Deployment
    B. Statefulset
    C. Service
    D. DaemonSet
  18. Pod 启动失败通过哪些命令排查?
    A. kubectl describe pod
    B. kubectl logs
    C. kubectl get pod
    D. kubectl exec –it xxx bash
  19. Service 有哪几种类型?
    A. ClusterIP
    B. Nodeport
    C. Loadblanner
    D. Ingress
  20. Service 有几种代理模式?
    A. Iptables
    B. IPVS
    C. Ingress
    D. Userspace
  21. Kubernetes 安全机制经历哪几个阶段处理?
    A. RBAC
    B. Authentication
    C. Authorization
    D. Admission
  22. Pod 健康检查支持哪几种方法?
    A. httpGet
    B. probe
    C. exec
    D. tcpSocket
  23. 限制 Pod 中容器最大可用 1 核(resources.limits.cpu)?
    A. 1000m
    B. 100m
    C. 0.1
    D. 1
  24. PV 与 PVC 静态绑定依据哪几个属性?
    A. Label
    B. 访问模式
    C. 请求容量
    D. StorageClass
  25. Node 是 Not Ready,可能是什么原因?
    A. kubelet 没启动
    B. kubelet 启动时证书错误
    C. kubelet 无法连接 apiserver
    D. kubelet 还没有上报最新状态
  26. kube-proxy 组件主要功能?
    A. 自动感知 Pod,并关联 Service
    B. 为 Pod 提供负载均衡
    C. 创建容器
    D. 汇报容器状态
  27. K8s 中镜像的下载策略是什么?
    A. Always
    B. Never
    C. IfNotPresent
    D. Latest
  28. CNI 网络模型(例如 Flannel/Calico)主要解决什么问题?
    A. 一个 Pod 一个唯一 IP
    B. 所有的 Pod 可以与任何其他 Pod 直接通信
    C. 同一个 Node 上的 Pod 可以直接通信
    D. 所有节点可以与所有 Pod 直接通信
  29. deployment.yaml 文件中有哪几部分组成?
    A. Deployment 控制器属性
    B. 预期副本数
    C. Pod 模板
    D. 数据卷
  30. 在 K8s 中部署有状态应用程序主要考虑哪些问题?
    A. 稳定的网络 ID
    B. 分配到同一个 Node
    C. 稳定的数据存储
    D. 有序的启动/停止/更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值