首页»Docker»Docker 运维实践:镜像、容器与数据卷的日常管理

Docker 运维实践:镜像、容器与数据卷的日常管理

Docker 用起来不难,难的是长期稳定地跑在服务器上。本页不重复安装步骤,而是从镜像分层、容器生命周期、数据卷与网络、资源限制与日志治理几个层面,整理一套可以在生产环境直接落地的 Docker 日常运维思路。

Docker 能力全景

镜像与分层

理解只读层与可写层,控制镜像体积与构建缓存。

容器生命周期

创建、启动、重启策略与优雅停止的实际差异。

数据卷与网络

持久化方案选型,bridge 与自定义网络的取舍。

资源与日志

CPU/内存限制、日志轮转与磁盘占满的预防。

镜像构建:把可维护性放在第一位

镜像不是越精简越好,而是要让后续接手的人看得懂。基础镜像固定版本标签、构建步骤按变更频率从低到高排列、把依赖安装与业务代码复制分开,这三点决定了缓存命中率与构建速度。

  • 基础镜像锁定具体版本,避免 latest 漂移
  • 多阶段构建剥离编译工具链,减小最终体积
  • 用 .dockerignore 排除无关文件,减少上下文传输
  • 镜像标签带上构建时间或提交号,便于回滚定位
Docker 镜像分层示意

镜像分层结构:每一层只读,容器运行时叠加可写层

容器运行参数对照表

参数 作用 运维建议
--restart 容器退出后的重启策略 常驻服务用 unless-stopped
-v / --mount 挂载数据卷或宿主机目录 生产优先用命名卷,路径挂载需谨慎
--memory / --cpus 限制容器资源上限 按业务峰值预留,避免互相挤占
--log-opt 日志驱动与轮转配置 设置 max-size 与 max-file 防磁盘写满
Docker 容器与数据卷拓扑

数据与网络:先想清楚再动手

容器本身是无状态的,所有需要长期保留的东西都应落在卷上。数据库、上传目录、配置文件建议用命名卷统一管理,备份时直接打包卷目录即可,不必进入容器内部操作。

网络方面,自定义 bridge 网络支持容器名互访,比默认 bridge 更适合多容器协作;对外暴露端口时配合反向代理统一入口,避免宿主机端口散乱难以梳理。

常见问题

容器启动后立刻退出怎么办?

先用 docker logs 查看退出原因,再看主进程是否为前台运行。后台守护型进程会导致容器认为任务结束而退出。

磁盘空间被容器日志占满如何处理?

检查 /var/lib/docker 占用,为容器配置日志轮转参数,并定期清理悬空镜像与停止的容器。

镜像更新后如何平滑替换?

拉取新镜像后重建容器,配合反向代理做健康检查与流量切换,保留旧镜像便于快速回滚。

最新文章 / 相关阅读

把 Docker 用稳,比用起来更重要

从镜像规范到日志治理,逐项补齐运维细节,才能让容器长期稳定地跑在生产环境里。

浏览云原生栏目