Docker 私有化部署数据大屏:10 分钟上线与避坑实录
一、为什么选 Docker
- 环境一致:开发、测试、生产同一个镜像,"我这能跑"从根上消失;
- 依赖归零:服务器只需要 Docker,不用装 Node/数据库;
- 升级回滚:一条命令重建,数据在外部目录不受影响;
- 安全边界:应用锁在容器里,端口映射只暴露必要服务。
二、10 分钟部署清单
# 0. 前置:服务器已安装 Docker 与 compose 插件
# 1. 克隆仓库
git clone https://gitee.com/your-gitee-account/lingjing-screen.git
cd lingjing-screen
# 2. 构建并启动(国内镜像加速,首次 2~5 分钟)
docker compose up -d --build
# 3. 访问 http://服务器IP:3001
# 首次启动自动创建管理员 admin / admin123,并注入 21 套示例大屏
海外服务器构建慢?加 --build-arg NPM_REGISTRY=https://registry.npmjs.org --build-arg ALPINE_MIRROR=dl-cdn.alpinelinux.org 切回官方源。
三、数据目录与备份
所有状态数据(SQLite 数据库、密钥)都落在 ./server-data/ 目录,容器随时可以销毁重建:
# 备份(建议 crontab 每日执行)
tar czf backup-$(date +%F).tar.gz server-data/
# 恢复:解压覆盖 server-data/ 后重启容器即可
docker compose restart
换对外端口:改 docker-compose.yml 里 "3001:3001" 的左侧端口,再 up -d。
四、绑定域名与 HTTPS
- 域名 DNS 添加 A 记录指向服务器 IP(国内服务器须先完成 ICP 备案,否则 80/443 会被云厂商拦截);
- 宿主机 Nginx 反代到容器的
127.0.0.1:3001(仓库 nginx/host/ 目录有现成配置样例); certbot --nginx -d 你的域名一键签发 HTTPS 与强制跳转,续期由 systemd 定时托管;- 确认 HTTPS 正常后,把端口映射改为
127.0.0.1:3001:3001,只留 Nginx 对外。
五、日常运维命令
docker compose logs -f # 看实时日志
git pull && docker compose up -d --build # 升级到最新版
docker compose down # 停止(数据保留在 server-data/)
docker compose ps # 查看运行状态
六、避坑清单
- 端口被占:宿主机已有 Nginx 占 80/443 时,应用走 3001 由 Nginx 反代,别硬抢端口;
- 忘记备份:只备份容器不备份 server-data/ 等于没备份;
- 首启后不改默认密码:admin/admin123 登录后立即修改;
- compose 插件缺失:「docker-compose」(老版独立程序)与「docker compose」(插件)命令不同,新装环境用后者;
- 磁盘打满:构建缓存与旧镜像定期
docker system prune清理。
完整最新的部署文档以官方快速上手指南与仓库 README 为准。
照着清单,十分钟拥有自己的大屏平台。
打开部署指南 →