青龙面板与宝塔面板的Docker部署实战
2026/7/25 9:27:37 网站建设 项目流程

1. 青龙面板与宝塔面板的黄金组合

青龙面板作为一款开源的定时任务管理工具,在爬虫、自动化脚本等领域广受欢迎。而宝塔面板则是国内服务器运维人员最熟悉的WEB管理工具之一。将二者结合使用,既能享受宝塔的便捷管理,又能发挥青龙的强大调度能力。

我最近在部署一个电商价格监控系统时,就采用了这套方案。相比传统的手动安装方式,使用Docker部署青龙面板不仅隔离性好,还能实现快速迁移和版本切换。下面就把我的完整安装过程记录下来,包括几个容易踩坑的关键点。

2. 环境准备与基础配置

2.1 服务器基础环境要求

建议使用CentOS 7.6+或Ubuntu 18.04+系统,配置至少1核CPU、2GB内存。实测在阿里云轻量应用服务器(2核4G)上运行非常流畅。内存低于1GB时,容器容易因内存不足被系统kill。

重要提示:如果之前安装过旧版Docker,务必先执行卸载命令yum remove docker*apt-get remove docker*,避免版本冲突。

2.2 宝塔面板的安装与优化

通过SSH连接服务器后,执行对应系统的安装命令:

# CentOS yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh # Ubuntu wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

安装完成后,建议立即进行以下安全设置:

  1. 修改默认8888端口为自定义端口
  2. 设置复杂的面板用户名和密码
  3. 开启BasicAuth认证
  4. 配置IP访问限制(仅允许管理IP访问)

3. Docker环境部署详解

3.1 通过宝塔安装Docker

在宝塔面板的"软件商店"搜索"Docker管理器",点击安装。相比命令行安装,这种方式会自动配置开机启动和服务管理。

安装完成后需要检查:

docker -v # 确认版本号≥20.10.7 docker-compose -v # 确认版本号≥1.29.2

3.2 配置Docker镜像加速

国内服务器建议配置镜像加速,在宝塔的Docker管理器设置中添加:

https://registry.cn-hangzhou.aliyuncs.com https://docker.mirrors.ustc.edu.cn

对于企业级应用,还可以配置私有仓库:

docker login --username=yourname registry.cn-hangzhou.aliyuncs.com

4. 青龙面板的Docker部署

4.1 创建专用数据目录

建议将数据目录放在非系统分区:

mkdir -p /data/qinglong && cd /data/qinglong

目录结构规划:

/data/qinglong ├── config # 配置文件 ├── log # 日志文件 ├── scripts # 脚本目录 └── db # 数据库文件

4.2 编写docker-compose.yml

创建配置文件:

version: '3' services: qinglong: image: whyour/qinglong:latest container_name: qinglong restart: unless-stopped ports: - "5700:5700" volumes: - ./config:/ql/config - ./log:/ql/log - ./scripts:/ql/scripts - ./db:/ql/db environment: - ENABLE_HANGUP=true - ENABLE_WEB_PANEL=true logging: driver: "json-file" options: max-size: "10m" max-file: "3"

关键参数说明:

  • ENABLE_HANGUP: 允许挂起任务
  • max-size: 限制日志大小防止磁盘爆满

4.3 启动容器与服务

执行部署命令:

docker-compose up -d

检查运行状态:

docker ps -a | grep qinglong

正常应该看到STATUS为"Up"。如果出现异常,可以通过docker logs qinglong查看日志。

5. 青龙面板的初始化配置

5.1 首次访问设置

通过http://服务器IP:5700访问面板,首次需要:

  1. 设置管理员账号
  2. 配置通知方式(推荐Telegram机器人)
  3. 选择皮肤主题

5.2 关键安全设置

在"系统设置"中务必配置:

  1. 修改默认访问路径(如/admin
  2. 开启两步验证
  3. 设置IP白名单
  4. 配置自动备份到OSS或七牛云

5.3 依赖管理

根据脚本需求安装Node.js、Python等依赖:

# 进入容器内部 docker exec -it qinglong bash # 安装常用依赖 pnpm install -g typescript ts-node pip3 install requests bs4

6. 常见问题排查指南

6.1 端口冲突问题

如果5700端口被占用,可以:

  1. 修改docker-compose.yml中的端口映射
  2. 查找占用进程:netstat -tunlp | grep 5700
  3. 或者直接使用其他端口如5800

6.2 容器启动失败

典型错误及解决方案:

  1. port already allocated:端口被占用
  2. no space left on device:磁盘空间不足
  3. permission denied:SELinux导致,可临时关闭setenforce 0

6.3 定时任务不执行

检查步骤:

  1. 查看容器时间:docker exec qinglong date
  2. 确认时区设置(应使用Asia/Shanghai)
  3. 检查crontab日志:docker logs qinglong | grep cron

7. 高级配置与优化技巧

7.1 资源限制配置

在docker-compose.yml中添加资源限制:

deploy: resources: limits: cpus: '1' memory: 1G reservations: memory: 512M

7.2 数据库备份方案

创建每日自动备份脚本:

#!/bin/bash BACKUP_DIR=/data/qinglong_backup docker exec qinglong sh -c 'sqlite3 /ql/db/qinglong.db ".backup /ql/db/backup.db"' tar -czvf $BACKUP_DIR/ql_$(date +%Y%m%d).tar.gz /data/qinglong/db/backup.db find $BACKUP_DIR -type f -mtime +7 -delete

然后添加到青龙面板的定时任务中,每天凌晨3点执行。

7.3 多实例部署

对于大型应用,可以通过修改端口号和数据目录部署多个实例:

version: '3' services: qinglong_1: image: whyour/qinglong:latest ports: - "5701:5700" volumes: - ./qinglong_1:/ql qinglong_2: image: whyour/qinglong:latest ports: - "5702:5700" volumes: - ./qinglong_2:/ql

8. 实际应用案例分享

8.1 电商价格监控系统

配置京东商品价格监控的完整流程:

  1. 在"脚本管理"添加京东价格监控脚本
  2. 配置商品SKU和预期价格
  3. 设置每小时执行一次的定时任务
  4. 配置价格低于阈值时的微信通知

8.2 自动签到系统

以哔哩哔哩每日签为例:

// 脚本内容示例 const axios = require('axios'); const notify = require('./sendNotify'); (async () => { try { const res = await axios.get('https://api.live.bilibili.com/sign/doSign'); if(res.data.code === 0) { notify.sendNotify('B站签到成功', res.data.message); } } catch (error) { notify.sendNotify('B站签到失败', error.message); } })();

9. 维护与升级策略

9.1 日常维护建议

  1. 每周检查容器日志:docker logs --since 7d qinglong
  2. 每月清理无用镜像:docker image prune -a
  3. 每季度更新基础镜像版本

9.2 版本升级步骤

安全升级流程:

  1. 停止当前容器:docker-compose down
  2. 备份数据目录:tar -czvf ql_backup.tar.gz /data/qinglong
  3. 拉取新镜像:docker pull whyour/qinglong:latest
  4. 重新启动:docker-compose up -d

9.3 灾难恢复方案

当服务器崩溃时,恢复步骤:

  1. 在新服务器安装相同环境
  2. 解压备份文件到/data/qinglong
  3. 启动容器:docker-compose up -d
  4. 验证数据完整性

这套部署方案在我管理的十几台服务器上运行稳定,特别是在618、双11等大促期间,能够稳定处理数万个定时任务。最关键的是做好资源监控和日志轮转,避免磁盘被日志文件占满。对于高负载场景,建议将数据库单独挂载到高性能SSD上。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询