Docker服务器该配多少CPU和内存,先看容器数量和负载类型

Docker 本身几乎不占什么资源,一个空闲的 Docker 守护进程内存通常只有几十 MB。
所以“Docker 服务器推荐什么配置”这个问题,真正要算的是你打算在容器里跑什么业务、同时跑多少个容器、有没有数据库和构建任务。
结论先说:个人测试和小型站点 2 核 2G 到 2 核 4G 够用;
跑多个容器加数据库的生产环境建议 4 核 8G 起步;
磁盘和内存余量比 CPU 核数更值得关注。

先看容器里跑什么,再决定 CPU 和内存

判断配置时,把容器分成三类看:

  • 基础服务类:Nginx、Redis、小型数据库、监控代理。这类容器 CPU 占用低,但数据库对内存敏感,MySQL 或 PostgreSQL 建议单独给 2G 以上内存。
  • 应用服务类:Java、Node.js、Python 后端。Java 容器启动后堆内存容易吃到 1G 以上,Node.js 和 Python 相对轻,但并发高时也会上涨。
  • 一次性任务类:docker build 构建镜像、定时脚本、数据导入。构建过程会短时间吃满 CPU,如果和生产容器挤在同一台机器上,建议至少留出 1 到 2 核余量。

一个常见的起步组合是:1 核 2G 只适合单容器测试;
2 核 4G 适合 Nginx 加一个应用容器;
4 核 8G 适合应用、数据库、缓存和反向代理同时运行。
CPU 核数不够时表现为响应变慢,内存不够时则可能直接触发 OOM 杀掉容器,后者更危险。

磁盘怎么规划,别让镜像把系统盘塞满

Docker 默认把镜像、容器层和数据卷放在 /var/lib/docker,位于系统盘。
长期运行后,旧镜像和停止的容器会持续累积,系统盘写满后容器会启动失败。

选购时建议系统盘不低于 40G,数据盘单独挂载并做好目录规划。
如果云厂商支持,可以把 Docker 数据目录迁移到数据盘:

sudo systemctl stop docker
sudo mkdir -p /data/docker
sudo rsync -a /var/lib/docker/ /data/docker/

然后编辑 /etc/docker/daemon.json:

{
  "data-root": "/data/docker"
}

执行 sudo systemctl start docker 后,用 docker info | grep "Docker Root Dir" 确认路径已生效。
迁移前务必停止所有容器并确认新目录空间足够。

日常可以定期清理无用资源,但不要在生产环境随手执行全量清理:

docker system df
docker image prune -a

docker system df 会列出镜像、容器、卷和构建缓存各占多少空间,先看再删。

内存限制要主动设置,避免单个容器拖垮整机

Docker 默认不限制容器内存,一个内存泄漏的容器可能把宿主机内存吃光,导致其他容器被系统杀掉。
建议在运行容器时显式限制:

docker run -d --name app \
  --memory=1g --memory-swap=1g \
  --cpus=1.5 \
  your-image:latest

--memory 限制容器可用内存,--memory-swap 设为相同值表示禁用额外交换空间。
设置后可以用 docker stats 观察实际占用,再根据业务峰值调整。
如果容器内是 Java 应用,还要同步设置 JVM 堆参数,否则 JVM 可能按宿主机总内存计算堆大小,和容器限制冲突。

带宽和网络配置的取舍

容器对外提供 Web 服务时,带宽取决于访问量和内容类型。
纯接口服务对带宽要求不高,图片、下载、视频类业务才是带宽消耗大户。
选购时可以先用小带宽起步,观察监控中的出网流量峰值再升级。

端口映射方面,生产环境建议只暴露必要端口,例如只映射 80 和 443,数据库端口不要直接映射到公网,让容器通过自定义网络互相访问:

docker network create app-net
docker run -d --name db --network app-net -e MYSQL_ROOT_PASSWORD=*** mysql:8

这样应用容器可以用容器名 db 作为主机名连接数据库,不必暴露端口。

买之前和上线后的检查清单

选购阶段确认这几点:内存是否可后续升级、系统盘和数据盘能否分开、是否有快照或备份能力、带宽是否独享。
上线后按顺序验证:

  • 执行 docker stats,确认各容器内存和 CPU 占用在限制范围内。
  • 执行 df -h,确认 /var/lib/docker 所在分区剩余空间充足。
  • 执行 docker ps -a,确认没有长期处于 Exited 状态的容器占着磁盘。
  • 用 free -h 查看宿主机剩余内存,长期低于 10% 就该考虑升配或拆分服务。

如果服务器上还要跑数据库,配置判断可以更保守一些;
如果是纯静态站点反向代理,2 核 2G 往往已经够用。
配置没有统一答案,按容器数量和内存峰值倒推,比照着参数表猜更可靠。

分享到:
上一篇
数据库服务器怎么选:先分清读写压力再定CPU、内存和磁盘
下一篇
网站搬家用什么服务器,先按迁移方式选配置
1
系统公告

关于香港云优质服务器IP地址更换的通知

尊敬的客户: 因原IP运营商大幅涨价,为避免成本转嫁至用户,我司决定更换IP服务商。本次更换后,您的续费价格将保持不变,且新IP网络质量与服务标准不受影响。新IP已分配至后台,即刻生效(更换的新IP都是香港原生IPv4)。 涉及 IP 段: 45.192.x.x 旧 IP 停用时间: 2026 年 12 月 1 日
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意