Docker面试题手册

梳理高频技术问题,帮助你按主题复习和查漏补缺。

服务端阅读 02月17日 23:43

Docker 容器灾难恢复计划包括哪些内容?

Docker 容器灾难恢复计划是保障业务连续性的关键。备份策略:定期备份镜像(docker save)、备份容器配置(docker inspect)、备份数据卷、备份 docker-compose.yml 和 Kubernetes 配置文件。恢复流程:1)从备份恢复镜像(docker load);2)重新创建容器和服务;3)恢复数据卷;4)验证应用功能正常。高可用设计:使用多节点集群、跨区域部署、自动故障转移。测试恢复:定期进行灾难恢复演练、验证备份完整性、记录恢复时间目标(RTO)和恢复点目标(RPO)。
服务端阅读 02月17日 23:42

Docker 容器版本管理的最佳实践是什么?

Docker 容器版本管理是确保应用稳定性的重要环节。镜像版本管理:使用语义化版本号(如 1.0.0、1.2.3)、使用标签区分不同版本(latest、stable、dev)、避免使用 latest 标签在生产环境、使用多阶段构建优化镜像。容器更新策略:滚动更新、蓝绿部署、金丝雀发布。版本回滚:保留旧版本镜像、使用 docker tag 创建版本标签、使用 docker-compose 或 Kubernetes 快速回滚。最佳实践:使用 CI/CD 自动化版本管理、记录每个版本的变更、定期清理旧版本镜像、使用镜像签名确保完整性。
服务端阅读 02月17日 23:42

Docker 容器生命周期管理包括哪些阶段?

Docker 容器生命周期管理包括创建、启动、停止、重启、删除等阶段。创建容器:docker create 或 docker run(创建并启动)。启动容器:docker start。停止容器:docker stop(优雅停止,发送 SIGTERM 信号)或 docker kill(强制停止,发送 SIGKILL 信号)。重启容器:docker restart。删除容器:docker rm(必须先停止容器)。查看容器状态:docker ps(运行中)、docker ps -a(所有容器)。容器退出码:0 表示正常退出,非 0 表示异常退出。使用 --restart-policy 控制容器退出后的自动重启行为。
服务端阅读 02月17日 23:42

Docker 容器端口映射的配置方法是什么?

Docker 容器端口映射用于将容器内部端口暴露到宿主机。使用 -p 或 --publish 参数,格式为:宿主机端口:容器端口。例如:docker run -p 8080:80 nginx 将容器的 80 端口映射到宿主机的 8080 端口。可以映射多个端口:-p 8080:80 -p 8443:443。使用 -P(大写)自动映射所有 EXPOSE 声明的端口到随机宿主机端口。查看端口映射:docker port 容器名。注意事项:宿主机端口已被占用会报错;使用 0.0.0.0:8080:80 绑定所有网卡,127.0.0.1:8080:80 只绑定本地。
服务端阅读 02月17日 23:42

Docker 容器监控和告警的方法有哪些?

Docker 容器监控和告警是生产环境运维的重要环节。监控指标包括:容器资源使用(CPU、内存、磁盘 I/O、网络 I/O)、容器状态(运行、停止、重启次数)、应用健康状态(健康检查结果)、日志错误率。监控工具:Docker 自带的 docker stats、Prometheus + cAdvisor、Grafana、Datadog、Sysdig 等。告警可以通过 Prometheus Alertmanager、Grafana Alerting 或自定义脚本实现。关键告警项:容器退出、资源使用超阈值、健康检查失败、日志错误率过高。建议设置合理的告警阈值和通知渠道,避免告警疲劳。
服务端阅读 02月17日 23:42

Docker 容器网络性能优化的方法有哪些?

Docker 容器网络性能优化可以从多个方面入手:1)选择合适的网络模式(host 模式性能最好但隔离性差);2)使用自定义网络而非默认 bridge 网络;3)优化 MTU 设置以匹配网络环境;4)减少网络层级和跳数;5)使用 DNS 缓存减少域名解析延迟;6)启用网络性能调优参数(如 TCP Fast Open);7)使用 overlay 网络时优化 VXLAN 配置;8)合理设置容器网络带宽限制;9)使用服务网格优化服务间通信;10)监控网络性能指标及时发现问题。
服务端阅读 02月17日 23:42

Docker 容器网络故障排查的步骤是什么?

Docker 容器网络故障排查步骤:1)检查容器网络模式配置(docker inspect);2)验证端口映射是否正确(docker port);3)检查容器是否在正确的网络中(docker network inspect);4)测试容器内部网络连通性(ping、curl);5)检查防火墙规则和 iptables;6)验证 DNS 解析是否正常;7)检查 overlay 网络配置(跨主机场景);8)使用 tcpdump 抓包分析网络流量;9)检查 MTU 设置是否匹配;10)查看 Docker 网络日志。常见问题:端口冲突、DNS 解析失败、MTU 不匹配、防火墙阻止、overlay 网络配置错误。
服务端阅读 02月17日 23:42

Docker 容器自动扩缩容的实现方法是什么?

Docker 容器自动扩缩容可以根据负载动态调整容器数量。在 Docker Swarm 中,使用 docker service scale 服务名=副本数 手动扩缩容,或配合外部监控工具实现自动扩缩容。Kubernetes 提供 Horizontal Pod Autoscaler(HPA)基于 CPU、内存或自定义指标自动扩缩容。实现自动扩缩容需要:1)配置资源请求和限制;2)设置扩缩容指标和阈值;3)配置最小和最大副本数;4)选择合适的扩缩容策略(如稳定窗口、扩缩容比例)。自动扩缩容可以提高资源利用率,降低成本,同时保证服务性能。
服务端阅读 02月17日 23:41

Docker 容器调试的方法有哪些?

Docker 容器调试常用方法:1)使用 docker logs 查看容器日志;2)使用 docker exec -it 容器名 /bin/bash 进入容器交互式 shell;3)使用 docker inspect 查看容器详细配置和状态;4)使用 docker top 查看容器内运行的进程;5)使用 docker stats 查看容器资源使用情况;6)使用 docker port 查看端口映射;7)使用 docker diff 查看容器文件系统变化。对于启动失败的容器,可以使用 docker run --rm -it 镜像名 /bin/bash 手动启动调试。调试时建议使用 --cap-add=SYS_PTRACE 和 --security-opt seccomp=unconfined 参数以获得更多调试能力。
服务端阅读 02月17日 23:41

Docker 容器资源监控的方法有哪些?

Docker 容器资源监控可以通过多种工具实现:1)Docker 自带的 docker stats 命令查看实时资源使用;2)docker system df 查看 Docker 磁盘使用情况;3)docker system prune 清理未使用的资源;4)使用 cAdvisor 收集容器指标;5)使用 Prometheus + Grafana 构建监控仪表板;6)使用 Datadog、Sysdig 等云监控服务;7)使用 docker events 监控容器事件。关键监控指标:CPU 使用率、内存使用量、网络 I/O、磁盘 I/O、容器重启次数、健康检查状态。建议设置告警阈值,及时发现异常。