Docker上线仓储管理系统需先拆分系统为独立容器并编排管理,GreaterWMS因前后端分离、轻量适配而典型适用;须准备64位Linux、Docker 24.x+、Compose v2.20+、2核2GB起硬件,配置国内镜像源与关闭SELinux;通过官方docker-compose.yml一键启动frontend、backend、db、nginx等服务,支持SQLite开箱即用或MySQL替换;生产级需Nginx反代+HTTPS、私有仓库镜像分发、Prometheus+Grafana监控;CI/CD流水线实现自动构建推送与滚动更新,数据库迁移封装进启动脚本,日志统一stdout输出并集中归档。

用Docker上线仓储管理系统,核心是把系统拆成可独立运行、环境一致的容器,再通过编排统一管理。GreaterWMS这类开源WMS就是典型适用场景——前后端分离、轻量级、对资源要求不高,非常适合容器化落地。
准备基础环境
确保服务器满足最低运行条件:64位Linux系统、Docker Engine(建议24.x+)、Docker Compose(v2.20+)。CPU至少2核,内存2GB起;若日均单量超1000,建议升至4核8GB并换MySQL集群。
- 安装Docker时优先配置国内镜像源(如阿里云),避免拉取镜像超时
- 确认/etc/docker/daemon.json中已添加registry镜像加速器或私有仓库地址(如内网Harbor)
- 关闭SELinux或设为permissive模式,防止挂载卷权限异常
获取并启动GreaterWMS容器栈
GreaterWMS官方提供完整Docker Compose部署方案,无需手动构建镜像。
- 克隆项目仓库,进入docker目录,检查docker-compose.yml是否包含frontend、backend、db、nginx等服务定义
- SQLite默认开箱即用;如需换MySQL,修改compose文件中的db服务为mysql:8.0,并挂载初始化SQL和配置文件
- 执行docker compose up -d一键启动全部服务,前端自动编译静态资源,后端同步数据库结构
对接生产级基础设施
上线不等于跑起来,还要稳得住、管得着、扩得了。
- 用Nginx反向代理暴露80/443端口,为前端加HTTPS,后端API走内网通信,避免直接暴露Django开发服务器
- 将镜像推送到企业私有仓库(如Harbor),在docker-compose.yml中把镜像名改为harbor.example.com/gwms/frontend:v1.5,实现镜像可信分发
- 接入Prometheus+Grafana,通过Django内置metrics端点或容器cgroup指标监控API响应、内存占用、PDA连接数等关键维度
持续交付与运维要点
容器化不是一次部署就结束,而是为CI/CD铺路。
- 每次Git Push触发流水线:构建新镜像 → 推送私有仓库 → 更新production分支的compose文件 → docker compose pull && docker compose up -d
- 数据库迁移用Django的migrate命令封装进backend容器启动脚本,避免人工干预
- 日志统一输出到stdout/stderr,由Docker daemon收集,再用Filebeat或Loki做集中归档分析











