docker 安装 xxl-job 详解

在平常的开发工作中,我们经常会用到 xxl-job,之前用过 quartz、@schedule等定时任务,xxl-job 是分布式任务调度框架,那么在 docker 下如何安装 xxl-job 呢?今天简单总结下主要步骤。

1:拉取 xxl-job 镜像

docker pull xuxueli/xxl-job-admin:版本号

根据自己的需求,拉取合适的 xuxueli/xxl-job-admin 版本,如果 docker pull xuxueli/xxl-job-admin 命令,后面不写版本号,那么默认拉取最新的 xxl-job 镜像。拉取完成后,可以使用 docker images 命令查看拉取到的镜像,xxl-job-admin 镜像如下:

注意:如果拉取镜像失败,可能是 docker 配置文件的问题。在 /etc/docker/ 目录下,修改 daemon.json 文件中的配置的镜像加速器。镜像加速器网上搜索很多,尝试修改配置,修改完后一定要重启docker服务,不然不生效。重启 docker 命令:systemctl restart docker。

2:初始化 xxl-job 对应的表

如图所示:

3:docker-compose.yml

复制代码
xxl-job-admin:
    restart: always
    # docker 镜像
    image: xuxueli/xxl-job-admin:2.4.0
    # 容器名称
    container_name: xxl-job-admin
    volumes:
      # 日志目录映射到主机目录
      - /docker/xxl_job/logs:/data/logs
    ports:
      # 端口映射
      - "9018:9018"
    environment:
      # 设置启动参数
      PARAMS: '
      --server.port=9018
      --server.servlet.context-path=/xxl-job-admin
      --spring.datasource.url=jdbc:mysql://mysql:3306/xxl-job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
      --spring.datasource.username=root
      --spring.datasource.password=123456
      --spring.mail.username=xxx-job
      --spring.mail.password=123456
      # 代码里面需要指定的token
      --xxl.job.accessToken=123456789zxcvbnm'

注意:在 docker-compose 中启动 xxl-job 时,连接 mysql 不能直接用 localhost,而需要用容器名(如 mysql)或服务名(如 mysql:3306),localhost 无法访问到 mysql 容器因为docker网络隔离机制,两者是不同的容器实例,有各自独立的网络栈。

4:启动

docker compose up xxl-job-admin,docker compose up -d 不阻塞当前命令窗口,docker compose up 阻塞当前命令页面,可以看到启动实时日志。

查看启动状态:docker ps

5:测试

(1):通过 ip:端口号 进行访问,登录的密码维护在 xxl_job_user 表中,登录即可,页面如下:

可能遇到的问题,访问不通,那么可能是防火墙端口的问题,可能是 xxl-job 端口防火墙未开导致的,不同的内核版本有不同的对应命令,如果是 Centos 内核版本,查看版本可以用 cat /etc/os-release 命令,可以先查看 9018 端口是否开了防火墙,如果没开,则添加后重启防火墙,相关命令如下:

查看防火墙开端口:firewall-cmd --zone=public --list-ports

添加端口:firewall-cmd --zone=public --add-port=9018/tcp --permanent

重启防火墙:firewall-cmd --reload

(2):登录后可在页面管理登录的用户,如图

(3):新增执行器

(4):新增定时任务

(5):查看运行日志

6:总结

以上为 docker 下安装 xxl-job 的基本步骤,主要是拉取镜像、初始化 xxl-job 对应的表、编写启动容器的 docker-compose.yml 文件,通过 docker compose up -d 启动。启动完成后可以通过 docker ps 查看容器的启动状态,如果启动失败,可以通过 docker logs 容器名称查看失败日志,根据失败日志修改对应的问题。启动成功后,可以在浏览器中输入 ip 地址和端口进行访问,登录的用户名和密码在 xxl-job-user 表中。

相关推荐
showyoui19 小时前
K8s 集群迁移踩坑:Istio 升级后 nginx 403
网络·docker·kubernetes·istio·service_mesh
golang学习记1 天前
Go 项目使用docker compose的正确方式
开发语言·docker·golang
雨声不在2 天前
私有 Docker Registry 排障实录:两个隐蔽的坑
docker·容器
读书读傻了哟2 天前
解决docker拉取镜像报错failed to resolve reference “docker.io/xxx“...i/o timeout问题
运维·docker·容器
Ai拆代码的曹操2 天前
DaemonSet OnDelete 策略详解:为何 rollout restart 无效及正确迁移方案
docker·容器·kubernetes
瑞码空间2 天前
Web应用的多端部署之道:浏览器 · Electron · Docker
前端·docker·electron·浏览器·web
badhope2 天前
Docker镜像从2GB压到80MB——我被运维追着打了三天才学会的容器瘦身术
docker
x²+(y-√³x²)²=12 天前
参数 `-v /usr/local/Ascend/add-ons:/usr/local/Ascend/add-ons:ro` 的作用
linux·docker
wangjing_05222 天前
通过CentOS 7虚拟机的Docker服务部署Node-RED及气象数据显示界面搭建完整教程
linux·docker·centos
Patrick在香港2 天前
Python Docker镜像从1.2GB到89MB:多阶段构建的完整优化实录
java·python·docker·信息可视化·容器·数据分析·ai编程