docker常见考点

一、基础概念类

  1. Docker与虚拟机的区别

    • Docker基于容器化技术,共享宿主机内核,资源消耗更少;虚拟机通过Hypervisor虚拟化硬件,资源占用高。
    • Docker启动速度更快(秒级),虚拟机需要启动完整操作系统(分钟级)。
  2. Docker的核心组件

    • 镜像(Image)、容器(Container)、仓库(Repository)、客户端/守护进程(Client/Daemon)。
  3. Docker的优势

    • 环境一致性、快速部署、资源高效利用、支持微服务架构。
  4. Docker的架构

    • 客户端-服务器模型,包含Docker Daemon、REST API、CLI。

二、镜像管理类

  1. 镜像与层的区别

    • 镜像是只读的层堆叠,每层代表Dockerfile中的一条指令。
  2. Dockerfile常用指令

    • FROM(基础镜像)、RUN(执行命令)、COPY/ADD(复制文件)、ENV(设置环境变量)、EXPOSE(暴露端口)。
  3. 优化Dockerfile的方法

    • 多阶段构建、合并RUN指令减少层数、使用.dockerignore排除无用文件。
  4. 镜像构建缓存机制

    • Docker按层缓存,若某层及之前的指令未变化,则复用缓存加速构建。

三、容器操作类

  1. 容器生命周期管理

    • 创建(docker create)→ 启动(docker start)→ 运行 → 停止(docker stop)→ 删除(docker rm)。
  2. 查看容器日志

  • docker logs <容器ID>,可加-f参数实时跟踪。
  1. 数据持久化方法
  • 使用Volume(数据卷)或Bind Mount(绑定挂载),Volume由Docker管理,Bind Mount依赖宿主机路径。
  1. 容器间通信方式
  • 通过共享网络命名空间、Docker网络(如bridge网络)、或环境变量传递信息。

四、网络与安全类

  1. Docker网络模式
  • Bridge(默认)、Host(共享宿主机网络)、None(无网络)。
  1. 容器安全最佳实践
  • 以非root用户运行容器、定期更新镜像、限制资源使用(CPU/内存)、扫描镜像漏洞。
  1. 容器与宿主机如何通信
  • 通过端口映射(-p参数)或宿主机网络模式(--network=host)。

五、高级应用与工具类

  1. Docker Compose的作用
  • 通过YAML文件定义多容器应用,实现一键启动和依赖管理。
  1. Docker Swarm与Kubernetes区别
  • Swarm是Docker原生集群工具,简单易用;Kubernetes功能更强大,适合复杂场景。
  1. 多阶段构建的应用场景
  • 分离构建环境和运行环境,减少最终镜像大小(例如:编译代码后仅保留可执行文件)。
  1. 如何实现容器的高可用性
  • 使用Swarm或Kubernetes编排工具,结合健康检查(HEALTHCHECK指令)和自动重启策略。
  1. 生产环境迁移注意事项
  • 确保镜像版本固定、配置文件与环境分离、日志集中管理、备份Volume数据。

六、高频命令总结(附证据来源)

命令示例 作用 来源
docker build -t <镜像名> 构建镜像
docker run -d -p 80:80 启动容器并映射端口
docker exec -it <ID> sh 进入运行中的容器
docker volume create 创建数据卷
docker swarm init 初始化Swarm集群

七、扩展考点(针对高级岗位)

  • Docker与CI/CD集成:如何在Jenkins/GitLab中自动化构建和部署。
  • 容器监控工具:Prometheus+Grafana监控容器资源。
  • 安全加固:使用Seccomp限制系统调用、AppArmor配置安全策略。

以上题目覆盖了Docker面试的核心知识点,建议结合实际操作和原理理解进行准备,尤其在镜像优化、网络配置和编排工具方面需重点深入。

相关推荐
安当加密1 小时前
如何安全地在 Kubernetes 中管理凭据?——基于 SMS 凭据管理系统的实践探索
安全·容器·kubernetes
bestcxx9 小时前
(二十六)、Kuboard 部署网络问题 &k8s 使用本地镜像 & k8s使用 register本地镜像站 综合应用
网络·容器·kubernetes
Lin_Aries_042114 小时前
容器化 Flask 应用程序
linux·后端·python·docker·容器·flask
Lin_Aries_042115 小时前
通过配置 GitLab 自动触发项目自动化构建与部署
运维·docker·容器·自动化·云计算·gitlab
尘埃不入你眼眸15 小时前
Docker操作命令
运维·docker·容器
数智顾问19 小时前
开源的容器化平台:Docker入门与核心概念解析
docker
liweiweili12620 小时前
K8S中关于容器对外提供服务网络类型
容器·kubernetes
云游20 小时前
Zabbix7.4.8(三):通过Zabbix agent 2监控Docker相关指标
docker·容器·zabbix
Lin_Aries_042121 小时前
使用 Jenkins 的流水线项目实施 CI/CD
运维·ci/cd·docker·容器·云计算·jenkins
走上未曾设想的道路1 天前
k8s集群与gitlab registry连接
容器·kubernetes·gitlab