Docker:容器化运行xxl-job-admin

本文记录了在Docker容器中部署xxl-job-admin时遇到的问题及解决过程。主要难点在于容器间的网络通信,特别是当xxl-job-admin需要连接在另一个Docker容器内的MySQL数据库时。通过添加--link参数实现容器间的连接,解决了无法访问数据库的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

今天想把xxl-job-admin跑在容器中,然后在部署的过程中踩了一些坑,特此记录

因为xxl-job-admin需要连接数据库,而我本机的mysql是部署在docker容器中,我以为只要将xxl-job-admin按正常容器化部署就可以访问了,结果在实施过程中遇到了一些坑,如果你在其中一个容器访问另一个容器中的mysql遇到一些报错的情况,你可以参考我这篇文章,看有没有参考性

如果对mysql容器化部署还不熟的同学请先看我这篇文章

我部署在容器中的mysql访问地址为:localhost:3306

首先mysql服务访问正常,通过客户端可以正常访问

二、部署xxl-job-admin

首先参照官方文档进行部署,Docker 镜像方式搭建调度中心

大致步骤如下(官网截图):
在这里插入图片描述
直接使用下面带参数的形式启动,然后访问http://localhost:8080/xxl-job-admin,发现不通

docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin  -d xuxueli/xxl-job-admin:2.3.0

查看一下日志,发现有报错

docker ps -l : 查询出容器id
docker logs --since 2m fba1cd734f5a 查看容器最近2分钟内的运行日志

yinchendong@Yinchds-Macbook-Pro ~ % docker ps -l
CONTAINER ID   IMAGE                         COMMAND                  CREATED              STATUS              PORTS                    NAMES
fba1cd734f5a   xuxueli/xxl-job-admin:2.3.0   "sh -c 'java -jar $J…"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp   xxl-job-admin
yinchendong@Yinchds-Macbook-Pro ~ % docker logs -t -f --tail 200f fba1cd734f5a
2021-10-25T08:05:09.509249100Z 
2021-10-25T08:05:09.509300100Z   .   ____          _            __ _ _
2021-10-25T08:05:09.509342600Z  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
2021-10-25T08:05:09.509599800Z ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
2021-10-25T08:05:09.509657700Z  \\/  ___)| |_)| | | | | || (_| |  ) 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值