一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Docker 容器生产环境部署如何配

时间:2026-09-04 20:34:49 编辑:袖梨 来源:一聚教程网

生产环境部署Docker容器必须配置安全、稳定、可观测、可维护四大要素:强制资源限制(--memory、--cpus)、只读根文件系统(--read-only)、健康检查(HEALTHCHECK)、日志轮转(--log-opt)、配置与数据持久化挂载、固定版本镜像、密钥外部管理及Alpine精简基础镜像。

生产环境部署 Docker 容器,不是“跑起来就行”,而是要兼顾**安全、稳定、可观测、可维护**。核心不在命令多复杂,而在关键配置是否到位。下面直接说重点。

基础运行参数必须加

裸用 docker run nginx 在生产中等于埋雷。至少补全这些:

  1. --restart=unless-stopped:宿主机重启后自动拉起容器,避免服务中断
  2. --memory=512m --cpus=0.5:限制资源,防止单个容器吃光服务器(Web 服务建议从 512MB 内存起步)
  3. --read-only:根文件系统设为只读,阻断恶意写入(需配合 --tmpfs-v 挂载可写路径)
  4. --pids-limit=100:限制进程数,防 fork 炸弹类攻击

健康检查不能少

容器“running”不等于服务可用。比如数据库容器启动了,但初始化还没完,应用连上去就失败。

正确做法是用 HEALTHCHECK 验证业务层面是否就绪:

  1. Nginx/HTTP 服务:curl -f http://localhost/health || exit 1
  2. PostgreSQL:pg_isready -U user -d dbname
  3. 配在 Dockerfile 里,或 docker-compose.ymlhealthcheck 字段中
  4. 务必设 intervaltimeoutretries,避免误判

日志和存储要持久化

默认日志存在 /var/lib/docker/ 下,不轮转会撑爆磁盘;配置文件硬编码进镜像,升级就丢配置。

  1. 日志:加 --log-opt max-size=100m --log-opt max-file=3,自动切割保留
  2. 配置文件:用 -v /host/conf/nginx.conf:/etc/nginx/nginx.conf:ro 挂载,不打包进镜像
  3. 数据目录:如 MySQL 的 /var/lib/mysql、Redis 的 /data,必须挂载到宿主机或命名卷

镜像和密钥要管住

两个高频翻车点:用 latest 镜像导致行为突变;把密码明文写进 docker-compose.yml 提交到 Git。

  1. 镜像标签:固定版本,例如 nginx:1.27-alpine,不用 latest
  2. 密钥管理:用 docker secrets(Swarm)或 env_file + .env.prod(Compose),且该文件不进 Git
  3. 基础镜像选型:优先 alpine 系列(小、轻、攻击面小),避免 ubuntu:latest 这类大而全的镜像

热门栏目