部署运维Docker

Docker 私有化部署数据大屏:10 分钟上线与避坑实录

📅 2026-06-28👁 约 8 分钟✍ 灵境大屏团队
私有化部署曾是件麻烦事:装 Node、装数据库、配环境变量、处理版本冲突……Docker Compose 把这一切压缩成一条命令。本文以灵境大屏的实际部署为例,给出可照抄的完整清单。

一、为什么选 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

  1. 域名 DNS 添加 A 记录指向服务器 IP(国内服务器须先完成 ICP 备案,否则 80/443 会被云厂商拦截);
  2. 宿主机 Nginx 反代到容器的 127.0.0.1:3001(仓库 nginx/host/ 目录有现成配置样例);
  3. certbot --nginx -d 你的域名 一键签发 HTTPS 与强制跳转,续期由 systemd 定时托管;
  4. 确认 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 # 查看运行状态

六、避坑清单

  1. 端口被占:宿主机已有 Nginx 占 80/443 时,应用走 3001 由 Nginx 反代,别硬抢端口;
  2. 忘记备份:只备份容器不备份 server-data/ 等于没备份;
  3. 首启后不改默认密码:admin/admin123 登录后立即修改;
  4. compose 插件缺失:「docker-compose」(老版独立程序)与「docker compose」(插件)命令不同,新装环境用后者;
  5. 磁盘打满:构建缓存与旧镜像定期 docker system prune 清理。
完整最新的部署文档以官方快速上手指南与仓库 README 为准。

照着清单,十分钟拥有自己的大屏平台。

打开部署指南 →