docker常见考点

发布于:2025-05-30 ⋅ 阅读:(13) ⋅ 点赞:(0)

一、基础概念类

  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面试的核心知识点,建议结合实际操作和原理理解进行准备,尤其在镜像优化、网络配置和编排工具方面需重点深入。


网站公告

今日签到

点亮在社区的每一天
去签到