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 容器启动快,资源占用小,操作系统级虚拟化技术
-
Namespace 在 Docker 中起到什么作用?
A.
资源隔离
B. 资源共享
C. 资源限制 -
CGroup 在 Docker 中起到什么作用?
A. 资源隔离
B. 资源共享
C.
资源限制 -
哪个不是 Docker 架构中的组件?
A. runc
B.
container
C. containerd -
如何搜索 Nginx 镜像?
A.
docker search nginx
B. docker nginx search
C. docker se nginx -
如何下载 Nginx 镜像?
A. docker nginx pull
B.
docker pull nginx
C. docker p nginx -
创建一个 Nginx 容器并放到后台启动?
A.
docke run -d nginx
B. docker run -it nginx
C. docker run nginx -
创建一个 Nginx 容器并暴露到宿主机 80 端口访问?
A. docker run -d 80 nginx
B.
docker run -d -p 80:80 nginx
C. docker run -port 80:80 nginx -
创建一个 Nginx 容器并加入指定网络 lnmp_net?
A. docker run -net lnmp_net nginx
B. docker run -n nmp_net nginx
C.
docker run --network lnmp_net nginx -
怎么进入容器终端?
A. docker exec –d nginx
B.
docker exec -it nginx /bin/bash
C. docker exec –itd nginx -
查看容器的详细信息?
A. docker ps
B.
docker inspect
C. docker status -
容器想获取宿主机数据,例如/proc,应该用哪种方式?
A.
bind mounts
B. tmpfs
C. voluems -
使用 dockerfile 文件构建镜像的命令是?
A.
docker build
B. docker commit
C. docker export -
Docker Swarm 是什么?
A.
Docker 官方的容器集群系统
B. 单机编排容器
C. 容器引擎
多选题 (共 10 题,每题 4 分)
- 使用 Docker 可以帮助企业解决或者改善什么问题?
A.
提高资源利用率
B. 当虚拟机来使用
C
. 标准化
D.
环境一致性
使用 Docker 可以帮助企业解决或改善以下问题:
应用程序的环境一致性问题:Docker可以将应用程序及其所有依赖项(库、运行时环境等)打包在一个容器中,确保无论在开发、测试还是生产环境中,容器中的应用程序和环境都保持一致,消除了由于环境差异而引起的问题。
应用程序的快速部署和扩展:Docker容器的轻量级和快速启动特性,使得应用程序的部署和扩展变得更加简单和快速。Docker可以轻松复制和部署多个容器,实现应用程序的水平扩展,以应对高流量和大规模应用的需求。
跨平台和可移植性:Docker容器可以在不同的操作系统和平台上运行,这使得应用程序可以在不同的环境中无缝迁移,并且可以在开发人员的本地机器上进行开发和测试,然后轻松地部署到生产环境中。
资源隔离和安全性:Docker容器提供了资源隔离,每个容器都有自己的文件系统、网络和进程空间,使得应用程序能够在相互独立的环境中运行。这增强了安全性,防止容器之间的相互干扰和攻击。
简化开发和部署流程:Docker可以帮助企业简化开发和部署流程,使得应用程序能够更快地推向市场。Docker可以加速应用程序的迭代和更新,同时也降低了部署的复杂性。
总的来说,使用Docker可以帮助企业提高应用程序的可靠性、安全性和效率,降低开发、部署和运行的复杂性,同时加快产品的上市时间。
- 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容器的高级功能和集群管理。
- 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容器的高级功能和集群管理。
- 如何查看 Docker 安装的版本?
A. docker info
B. docker –help
C. docker -v
D.
docker version
docker info : 显示 Docker 系统信息,包括镜像和容器数。
docker version :显示 Docker 版本信息。
- 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提供了广泛的灵活性,使得用户可以根据具体的应用场景和需求选择适合的网络设置。
- 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
- Docker 提供()种方式将数据从宿主机挂载到容器中?
A. voluems
B. mount
C. tmpfs
D. bind mounts
docker有四种存储方式:
1、“默认储存”,数据保存在运行的容器中,容器删除后,数据也随之删除;
2、“volumes数据卷”;
3、“bind mounts挂载”,直接挂载主机文件系统的任何目录或文件;
4、“tmpfs mount”。
- 哪些是 dockerfile 的指令?
A. FROM
B. EXEC
C. CMD
D. RUN - Docker 的存储驱动有哪些?
A. AUFS
B. Device Mapper
C. OverlayFS
D. EXT4 - 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 分)
- 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 - kubelet 主要功能?
A. 网络代理
B. 资源调度
C. 容器管理 - kubectl 是什么?
A. 部署集群工具
B. 管理集群的命令行工具
C. 创建容器工具 - Deployment 与 Statefulset 有什么区别?
A. Deployment 部署有状态应用,Statefulset 部署无状态应用
B. Deployment 部署无状态应用,Statefulset 部署有状态应用
C. Deployment 与 Statefulset 没区别 - Pod 中 pause 容器是做什么用的?
A. 初始化容器
B. 收集其他容器信息
C. 管理 Pod 网络 - 怎么限制 Pod 最大使用内存量?
A. resources.limits.cpu
B. resources.limits.memory
C. resources.requests.memory - 怎么扩容/缩容 Pod 副本数?
A. kubectl scale
B. kubectl rollout
C. kubectl apply - Service 如何关联到对应 Pod?
A. Deployment
B. Label
C. Endpoint - Service 是由哪个组件负责的?
A. kubelet
B. kube-proxy
C. apiserver - emptyDir 数据卷类型有什么作用?
A. 挂载宿主机目录或文件到容器
B. 在宿主机上创建一个空目录并挂载到容器
C. 挂载现有的存储到容器 - Pod 删除,emptyDir 数据卷会删除吗?
A. 会
B. 不会
C. 自动备份 - hostPath 数据卷类型有什么作用?
A. 挂载宿主机目录或文件到容器
B. 在宿主机上创建一个空目录并挂载到容器
C. 挂载现有的存储到容器 - RBAC 是做什么的?
A. 基于角色的访问控制
B. 基于属性的访问控制
C. 基于用户的访问控制 - ServiceAccount 做什么的?
A. 存储敏感数据
B. 存储服务配置
C. 给运行的 Pod 中的进程提供一个身份访问 Kubernetes API - Deployment 滚动更新实现原理?
A. 两个 ReplicaSet 进行不断扩容/缩容,直到新 RS 扩容预期副本数,旧 RS 缩容为 0
B. Deployment 直接对 Pod 控制,每次升级一个 Pod,直到升级所有
C. 一个 ReplicaSet 直接对 Pod 控制,每次升级一个 Pod,直到升级所有
多选题 (共 15 题,每题 4 分) - Pod 正确说法是?
A. K8S 的最小部署单元
B. 一个 Pod 是一个容器
C. Pod 由一个或多个容器组成
D. 一个 Pod 中的多个容器在同一台 Node 运行 - 部署应用程序常用的几种资源对象?
A. Deployment
B. Statefulset
C. Service
D. DaemonSet - Pod 启动失败通过哪些命令排查?
A. kubectl describe pod
B. kubectl logs
C. kubectl get pod
D. kubectl exec –it xxx bash - Service 有哪几种类型?
A. ClusterIP
B. Nodeport
C. Loadblanner
D. Ingress - Service 有几种代理模式?
A. Iptables
B. IPVS
C. Ingress
D. Userspace - Kubernetes 安全机制经历哪几个阶段处理?
A. RBAC
B. Authentication
C. Authorization
D. Admission - Pod 健康检查支持哪几种方法?
A. httpGet
B. probe
C. exec
D. tcpSocket - 限制 Pod 中容器最大可用 1 核(resources.limits.cpu)?
A. 1000m
B. 100m
C. 0.1
D. 1 - PV 与 PVC 静态绑定依据哪几个属性?
A. Label
B. 访问模式
C. 请求容量
D. StorageClass - Node 是 Not Ready,可能是什么原因?
A. kubelet 没启动
B. kubelet 启动时证书错误
C. kubelet 无法连接 apiserver
D. kubelet 还没有上报最新状态 - kube-proxy 组件主要功能?
A. 自动感知 Pod,并关联 Service
B. 为 Pod 提供负载均衡
C. 创建容器
D. 汇报容器状态 - K8s 中镜像的下载策略是什么?
A. Always
B. Never
C. IfNotPresent
D. Latest - CNI 网络模型(例如 Flannel/Calico)主要解决什么问题?
A. 一个 Pod 一个唯一 IP
B. 所有的 Pod 可以与任何其他 Pod 直接通信
C. 同一个 Node 上的 Pod 可以直接通信
D. 所有节点可以与所有 Pod 直接通信 - deployment.yaml 文件中有哪几部分组成?
A. Deployment 控制器属性
B. 预期副本数
C. Pod 模板
D. 数据卷 - 在 K8s 中部署有状态应用程序主要考虑哪些问题?
A. 稳定的网络 ID
B. 分配到同一个 Node
C. 稳定的数据存储
D. 有序的启动/停止/更新