Docker镜像方式搭建xxl-job调度中心

1、docker安装mysql(教程略,不懂可自行google)

2、执行官方sql脚本

将https://github.com/xuxueli/xxl-job/blob/master/doc/db/tables_xxl_job.sql内容复制到sql编辑器中,执行sql脚本。(总共8张表)

Snipaste_2024-09-26_20-56-29.png

3、下载镜像

https://hub.docker.com/r/xuxueli/xxl-job-admin/
(建议指定版本号,我这里用最新版本2.4.1,查看版本:https://hub.docker.com/r/xuxueli/xxl-job-admin/tags)

docker pull xuxueli/xxl-job-admin:2.4.1

4、运行容器

docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://172.17.0.5:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=cqrCPUN4root" -p 18080:8080 -v /home/agsun/xxl-job/applogs:/data/applogs --name xxl-job-admin-dev -d xuxueli/xxl-job-admin:2.4.1

命令解释:

-e 指定参数
–spring.datasource.url 指定mysql 连接的url
–spring.datasource.username 指定 mysql 连接的用户
–spring.datasource.password 指定 mysql 连接用户的密码
-p 将本机的 18080 端口的流量转发到 xxljob-admin 容器的 8080 端口
-v 将容器的 /data/applogs 目录挂载到本机/home/xxl-job/applogs 目录
–name 容器名设置为 xxl-job-admin-dev

我们的 mysql 也是通过 docker 安装的。所以两个容器之间通信需要他们容器内ip

获取 docker 的可用网络
docker network ls
查看 beidge 的网络详情。可以看到 mysql 得ip 为 172.17.0.5
docker network inspect cid(容器id)

Snipaste_2024-09-26_20-44-02.png

其实,docker inspect cid(容器id)也能查看分配的ip

容器运行后。在本机浏览器访问 http://192.168.0.1:18080/xxl-job-admin/ 即可进入xxljob管理端。默认用户 admin 密码 123456 。登录成功就大功告成了!

参考文章:分布式任务调度平台XXL-JOB

xxljob docker 部署 基于 xuxueli/xxl-job-admin:2.4.0 镜像

---------------------------------更新2024-10-30---------------------------------

今天服务器重启了下mysql容器,xxl-job admin就蹦了。原来是mysql容器ip地址变了,那么启动时指定的spring.datasource.url值就不对了,所以导致连接不到数据库。如果修改docker启动参数则需要修改hostconfig.json和config.v2.json这两个配置文件并重启docker(systemctl restart docker),这显然是无法接受的,因为其他的容器也会跟着重启!所以需要删除容器重新改成以下方式部署:

1、下载并修改配置文件application.properties

    cd /home/目录/xxl-job

    #拉取配置文件
    wget https://raw.githubusercontent.com/xuxueli/xxl-job/2.3.0/xxl-job-admin/src/main/resources/application.properties

2、修改application.properties里的配置,主要配置端口和mysql连接配置并部署

    # 18080是向外暴露的端口,8080是application.properties里配置的服务端口
    # /root/xxl-job/application.properties 是application.properties在服务器上的路径
    docker run -d --name xxl-job-admin-dev -p 18080:8080 -v /home/目录/xxl-job/application.properties:/application.properties -v /home/目录/applogs:/data/applogs --restart=always -e TZ=Asia/Shanghai -e PARAMS='--spring.config.location=/application.properties' xuxueli/xxl-job-admin:2.4.1

参考:docker部署xxl-job2.3.0

---------------------------------更新2024-12-05---------------------------------

xxl-job admin登录不上,发现是docker启动的mysql服务的ip地址变了

登录服务器,cd /home/目录/xxl-job,vi application.properties 变更正确的ip后,重启xxl-job容器即可


已有 0 条评论

    感谢参与互动!