1、docker安装mysql(教程略,不懂可自行google)
2、执行官方sql脚本
将https://github.com/xuxueli/xxl-job/blob/master/doc/db/tables_xxl_job.sql内容复制到sql编辑器中,执行sql脚本。(总共8张表)
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)
其实,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
---------------------------------更新2024-12-05---------------------------------
xxl-job admin登录不上,发现是docker启动的mysql服务的ip地址变了
登录服务器,cd /home/目录/xxl-job,vi application.properties 变更正确的ip后,重启xxl-job容器即可
注意:本文归作者所有,未经作者允许,不得转载