docker、Docker-Compose、Portainer和1Panel安装部署、docker部署mysql、redis、rabbitmq、xxl-job、Prometheus
Docker部署文档
一、基础安装
1. 查看系统的内核版本
uname -r
4.18.0-80.11.2.el8_0.x86_64
uname -r- x86 64位系统,如果是32位是不能安装 docker 的
2. yum 更新到最新版本
sudo yum update
sudo yum update- 看到显示
Complete就代表完成了,整个过程需要 5-10 分钟左右
注意:可能会更新失败,那就操作以下指令
## 建议备份当前的 yum 源配置,以防万一需要恢复
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
## 从阿里云下载 CentOS 7 的 yum 源配置文件并替换现有的配置
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
## 清理旧的缓存并生成新的缓存
sudo yum clean all
sudo yum makecache
## 再次更新
sudo yum update
3. 安装Docker所需的依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum install -y yum-utils device-mapper-persistent-data lvm2- 看到显示
Complete就代表完成了,整个过程需要 1-3 分钟左右
4. 设置Docker的yum的源
#推荐使用
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo (注意很卡,推荐使用下面国内源)
- 鉴于国内网络问题,强烈建议使用国内源。以下是阿里云的软件源。如果是海外如AWS云就不要设置yum源
#推荐使用
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#把 Docker 官方源换成阿里云国内镜像源
sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
5. 查看仓库所有Docker版本
[root@CodeGuide ~]# yum list docker-ce --showduplicates | sort -r
Installed Packages
docker-ce.x86_64 3:20.10.9-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.8-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.7-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.6-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.5-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.4-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.3-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.2-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.1-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.11-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.11-3.el8 @docker-ce-stable
docker-ce.x86_64 3:20.10.10-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.0-3.el8 docker-ce-stable
docker-ce.x86_64 3:19.03.15-3.el8 docker-ce-stable
docker-ce.x86_64 3:19.03.14-3.el8 docker-ce-stable
docker-ce.x86_64 3:19.03.13-3.el8 docker-ce-stable
- yum list docker-ce –showduplicates | sort -r
- 这里可以看到你能安装的最新版本,最上面最新
6. 安装Docker
# 安装最新版本
sudo yum install docker-ce
#安装指定版本
sudo yum install -y docker-ce-25.0.5 docker-ce-cli-25.0.5 containerd.io
- 安装指定版本,例如:
yum install -y docker-ce-25.0.5 docker-ce-cli-25.0.5 containerd.io
7. 安装Docker-Compose
7.1 正常安装
官网地址(很卡,推荐下面镜像地址)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
镜像地址
# 指定路径【推荐】
sudo curl -L https://gitee.com/fustack/docker-compose/releases/download/v2.24.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
# 设置权限
sudo chmod +x /usr/local/bin/docker-compose
7.2 离线安装
# 下载;docker-compose-`uname -s`-`uname -m` 查看版本;https://github.com/docker/compose/releases/tag/v2.18.1
# 重命名
mv docker-compose-linux-x86_64 docker-compose
# 加入执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 查看docker-compose版本
docker-compose -v
- 安装后就可以使用 compose 命令了;
docker-compose -f environment-docker-compose.yml up -d
8. 启动Docker并添加开机自启动
启动Docker
# 启动Docker
sudo systemctl start docker
- 设置开机启动 Docker
# 设置开机启动 Docker
systemctl enable docker
- 重启 Docker 命令
# 重启 Docker 命令
sudo systemctl restart docker
9. 查看 Docker 版本
docker --version
10. 卸载 Docker
[root@CodeGuide ~]# sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
11. Docker 常用命令
docker --help #Docker帮助
docker --version #查看Docker版本
docker search <image> #搜索镜像文件,如:docker search mysql
docker pull <image> #拉取镜像文件, 如:docker pull mysql
docker images #查看已经拉取下来的所以镜像文件
docker rmi <image> #删除指定镜像文件
docker run --name <name> -p 80:8080 -d <image> #发布指定镜像文件
docker ps #查看正在运行的所有镜像
docker ps -a #查看所有发布的镜像
docker rm <image> #删除执行已发布的镜像
#启动容器:
docker run -d \
--name 容器名 \
-p 主机端口:容器端口 \
-e 环境变量=值 \
-v 主机目录:容器目录 \
镜像名:tag
#停止服务,删除服务
docker stop 容器名
docker rm 容器名
#进入容器
docker exec -it 容器名(例:big-market-app ) /bin/bash
12. 设置国内源
使用以下命令来设置 Docker 国内源:- 或者你可以通过 vim /etc/docker/daemon.json 进入修改添加 registry-mirrors 内容后重启 Docker
# 最终常用镜像源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
这个命令会创建一个 /etc/docker/daemon.json 文件,并将国内源的配置写入其中。然后你只需要重启 Docker 服务即可使配置生效,可以通过运行 sudo systemctl restart docker 命令来重启 Docker 服务。
解决目前Docker Hub国内无法访问方法
自从2023年5月中旬,著名Docker 容器平台:hub.docker.com “不知” 何种原因国内均无法正常访问了。
这样对国内服务器拉取Docker仓库影响比较大。不过得亏国内有Docker Hub镜像平台。有付费的,有免费的!
- 参考链接:https://cloud.tencent.com/developer/article/2301228
二、运维面板安装(Portainer)(Portainer和1Panel 二选一安装即可)
1、Portainer
拉取最新的 Portainer
- 默认镜像:
docker pull portainer/portainer(可能拉取很快) - 代理镜像:
docker pull registry.cn-hangzhou.aliyuncs.com/xfg-studio/portainer:latest(推荐和代理安装启动一起) - 拉取 portainer
2. 安装和启动
注意:如果是阿里云服务器,还需要先执行 docker volume crete portainer_data
# 默认镜像安装(可能很卡)
docker run -d --restart=always --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
# 代理安装(推荐):
docker run -d --restart=always --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock registry.cn-hangzhou.aliyuncs.com/xfg-studio/portainer:latest
代理安装(推荐):docker run -d --restart=always --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock registry.cn-hangzhou.aliyuncs.com/xfg-studio/portainer:latest
3. 访问 Portainer
- 地址:http://xxxx:9000/
- 操作:登录后设置你的用户名和密码,并设置本地Docker即可
4、停止Portainer
docker stop portainer
5、启动Portainer(已有镜像情况)
docker start portainer
三、运维面板安装(1Panel )(Portainer和1Panel 二选一安装即可)
1. 安装脚本
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh
- Centos 一键安装脚本,复制到云服务器直接执行即可。
- 其他的云服务器系统安装脚本:https://1panel.cn/docs/installation/online_installation/
2. 安装效果

- 安装过程中你可以顺序点回车即可,注意是否配置镜像加速,因为我配置过,所以没有配置。你可以选 Y 统一配置镜像加速。
- 安装完成后,会得到一个外网地址,端口是默认的37126,同时给会你用户和密码。注意,需要在云服务器开放端口(安全组/防火墙)37126 另外账号密码可以在登录后修改。
- 你的 Linux 安装 Docker 会直接被 1Panel 接管。在 1Panel 会看到你安装过的软件
- 同时可以看到每个软件占用的 CPU、内存,这个还是非常好用的
3、卸载1Panel
-
执行官方卸载(会一并停用并移除 systemd 服务)
sudo 1pctl uninstall -
确认无残留后,可选地删掉数据与配置
sudo rm -rf /opt/1panel /usr/local/bin/1panel /etc/systemd/system/1panel.service # 通知 systemd “配置已变,请重新读盘” sudo systemctl daemon-reload
四、服务部署
1、配置JDK、maven、git 环境
- 安装git
sudo yum install git
-
安装JDK、maven
1.1 上传文件到dev-ops目录下(文件可以从这里拉取https://gitcode.com/weixin_47555380/dev-ops.git)
注意:文件中 因为jdk 比较大未上传,需要单独下载后替换dev-ops里面
1.2 执行脚本
chmod +x java.sh
chmod +x maven.sh
#注意替换dev-ops里面java下面 jdk-8u202-linux-x64.tar.gz 文件
./java.sh
./maven.sh
#刷新配置
source /etc/profile
# 检查版本
java -version
mvn -version

2、上传相关 docker-compose-environment.yml 、docker-compose-app.yml、mysql、rabbitmq、redis 文件
文件可以从这里拉取 https://gitcode.com/weixin_47555380/dev-ops.git
mysql文件里面有sql,可以启动的时候执行
redis文件里面有redis.conf
rabbitmq文件里面有enabled_plugins
docker-compose-environment.yml
# 命令执行 docker-compose -f docker-compose-environment.yml up -d
version: '3.9'
services:
mysql:
image: mysql:8.0.32
container_name: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
networks:
- my-network
depends_on:
- mysql-job-dbdata
ports:
- "13306:3306"
volumes:
- ./mysql/sql:/docker-entrypoint-initdb.d
healthcheck:
test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
interval: 5s
timeout: 10s
retries: 10
start_period: 15s
volumes_from:
- mysql-job-dbdata
# 自动加载数据
mysql-job-dbdata:
image: alpine:3.18.2
container_name: mysql-job-dbdata
volumes:
- /var/lib/mysql
# phpmyadmin https://hub.docker.com/_/phpmyadmin
phpmyadmin:
image: phpmyadmin:5.2.1
container_name: phpmyadmin
hostname: phpmyadmin
ports:
- 8899:80
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
- MYSQL_ROOT_PASSWORD=123456
depends_on:
mysql:
condition: service_healthy
networks:
- my-network
# Redis
redis:
image: redis:6.2
container_name: redis
restart: always
hostname: redis
privileged: true
ports:
- 16379:6379
volumes:
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
command: redis-server /usr/local/etc/redis/redis.conf
networks:
- my-network
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 10s
timeout: 5s
retries: 3
# RedisAdmin https://github.com/joeferner/redis-commander
# 账密 admin/admin
redis-admin:
image: spryker/redis-commander:0.8.0
container_name: redis-admin
hostname: redis-commander
restart: always
ports:
- 8081:8081
environment:
- REDIS_HOSTS=local:redis:6379
- HTTP_USER=admin
- HTTP_PASSWORD=admin
- LANG=C.UTF-8
- LANGUAGE=C.UTF-8
- LC_ALL=C.UTF-8
networks:
- my-network
depends_on:
redis:
condition: service_healthy
# rabbitmq
# 账密 admin/admin
# rabbitmq-plugins enable rabbitmq_management
rabbitmq:
image: rabbitmq:3.12.9
container_name: rabbitmq
restart: always
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin
command: rabbitmq-server
volumes:
- ./rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins
networks:
- my-network
# http://127.0.0.1:9090/xxl-job-admin admin/123456 - 安装后稍等会访问即可
# 官网镜像为 xuxueli/xxl-job-admin:2.4.1 (不用xxl-job可以去掉)
xxl-job-admin:
image: xuxueli/xxl-job-admin:2.4.1 #M1 Mac 更换镜像 kuschzzp/xxl-job-aarch64:2.4.0
container_name: xxl-job-admin
restart: always
depends_on:
- mysql
ports:
- "9090:9090"
links:
- mysql
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/xxl_job?serverTimezone=UTC&characterEncoding=utf8&autoReconnect=true&serverTimezone=Asia/Shanghai
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=123456
- SERVER_PORT=9090
networks:
- my-network
# 数据采集(不用监控可以去掉)
prometheus:
image: bitnami/prometheus:2.47.2
container_name: prometheus
restart: always
ports:
- 9099:9090
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
networks:
- my-network
# 监控界面(不用监控可以去掉)
grafana:
image: grafana/grafana:10.2.0
container_name: grafana
restart: always
ports:
- 4000:4000
depends_on:
- prometheus
volumes:
- ./grafana:/etc/grafana
networks:
- my-network
networks:
my-network:
driver: bridge
docker-compose-app.yml
version: '3.8'
# 命令执行 docker-compose -f docker-compose-app.yml up -d
services:
big-market-app:
image: fuzhengwei/big-market-app:3.0
container_name: big-market-app
restart: always
ports:
- "8091:8091"
environment:
- TZ=PRC
- SERVER_PORT=8091
- APP_CONFIG_API_VERSION=v1
- APP_CONFIG_CROSS_ORIGIN=*
volumes:
- ./log:/data/log
networks:
- my-network
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
big-market-front-app:
container_name: big-market-front-app
image: fuzhengwei/big-market-front-app:3.0
restart: always
networks:
- my-network
ports:
- 80:3000
healthcheck:
test: [ "CMD", "wget", "--spider", "-q", "http://0.0.0.0:3000/" ]
interval: 1m
timeout: 10s
retries: 3
networks:
my-network:
driver: bridge
3、拉取服务代码
git clone xxx.git
4、maven打包
#项目目录下执行
mvn clean install
5、build 服务镜像
-
进入app服务中

-
执行命令
chmod +x build.sh
./build.sh
#构建完成,可以查看镜像
docker images
build.sh (注意build.sh 文件当前目录下需要存在Dockerfile文件)
docker build -t fuzhengwei/big-market-app:3.0 -f ./Dockerfile .
Dockerfile 文件
# 基础镜像
FROM openjdk:8-jre-slim
# 作者
MAINTAINER xiaofuge
# 配置
ENV PARAMS=""
# 时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 添加应用
ADD target/big-market-app.jar /big-market-app.jar
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /big-market-app.jar $PARAMS"]
6、拉取依赖镜像,如mysql、redis等(可以先执行第7步,如果第7步拉取镜像超时,可以执行第6步,提前拉取好镜像再执行第7步)
# 代理镜像地址
https://github.com/fuzhengwei/docker-image-pusher
# 命令1:
docker pull registry.cn-hangzhou.aliyuncs.com/xfg-studio/mysql:8.0.32
# 命令2:
docker tag registry.cn-hangzhou.aliyuncs.com/xfg-studio/mysql:8.0.32 mysql:8.0.32
分别使用命令1和命令2,拉取和修改镜像名称,之后就可以使用。注意命令2修改的名称要为原镜像名称
超时部分镜像拉取好后,再执行第7步命令
7、命令执行 docker-compose -f docker-compose-environment.yml up -d (如果这边执行超时,可以先执行第6点,先提前拉取镜像)
docker-compose -f docker-compose-environment.yml up -d
8、命令执行 docker-compose -f docker-compose-app.yml up -d
镜像都准备好后,执行命令:
docker-compose -f docker-compose-app.yml up -d
五、服务监控系统部署(Prometheus(普罗米修斯))
1、引入pom
<!-- 监控;actuator-上报、prometheus-采集、grafana-展示 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
2、添加配置类
PrometheusConfiguration.java
package cn.market.config;
import io.micrometer.core.aop.CountedAspect;
import io.micrometer.core.aop.TimedAspect;
import io.micrometer.core.instrument.Clock;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.prometheus.PrometheusConfig;
import io.micrometer.prometheus.PrometheusMeterRegistry;
import io.prometheus.client.CollectorRegistry;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
@EnableAspectJAutoProxy
@Configuration
public class PrometheusConfiguration {
@Bean
public CollectorRegistry collectorRegistry() {
return new CollectorRegistry();
}
@Bean
public PrometheusMeterRegistry prometheusMeterRegistry(PrometheusConfig config, CollectorRegistry collectorRegistry) {
return new PrometheusMeterRegistry(config, collectorRegistry, Clock.SYSTEM);
}
@Bean
public TimedAspect timedAspect(MeterRegistry registry) {
return new TimedAspect(registry);
}
@Bean
public CountedAspect countedAspect(MeterRegistry registry) {
return new CountedAspect(registry);
}
}
3、application.yml配置文件新增配置
# 监控配置 Prometheus + Grafana
management:
endpoints:
web:
exposure:
include: "*" # 暴露所有端点,包括自定义端点
endpoint:
health:
show-details: always # 显示详细的健康检查信息
metrics:
export:
prometheus:
enabled: true # 启用Prometheus
prometheus:
enabled: true # 启用Prometheus端点
4、上传 Prometheus + Grafana 文件以及docker-compose-environment.yml 文件
文件可以从这里拉取 https://gitcode.com/weixin_47555380/dev-ops.git 第4阶段-v4.3
5、启动
docker-compose -f docker-compose-environment.yml
6、登录
http://xxx:4000/
7、导入仪表盘

六、服务接入xxl-job系统
1、pom导入
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.4.0</version>
</dependency>
2、yml配置
# xxl-job https://www.xuxueli.com/xxl-job/#%E6%AD%A5%E9%AA%A4%E4%B8%80%EF%BC%9A%E8%B0%83%E5%BA%A6%E4%B8%AD%E5%BF%83%E9%85%8D%E7%BD%AE%EF%BC%9A
xxl:
job:
# 验证信息 官网Bug https://github.com/xuxueli/xxl-job/issues/1951
accessToken: default_token
# 注册地址(服务器部署地址)
admin:
addresses: http://xxxx:9090/xxl-job-admin
# 注册执行器
executor:
# 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
address:
appname: big-market-job
# 执行器IP 配置为本机IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
ip:
# 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
port: 9999
# 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
logpath: ./data/applogs/xxl-job/jobhandler
# 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
logretentiondays: 30
3、新增配置类
package cn.market.config;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Slf4j
@Configuration
public class XxlJobAutoConfig {
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.appname}")
private String appname;
@Value("${xxl.job.executor.address}")
private String address;
@Value("${xxl.job.executor.ip}")
private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appname);
xxlJobSpringExecutor.setAddress(address);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
/**********************************************************************************************
* 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
*
* 1、引入依赖:
* <dependency>
* <groupId>org.springframework.cloud</groupId>
* <artifactId>spring-cloud-commons</artifactId>
* <version>${version}</version>
* </dependency>
*
* 2、配置文件,或者容器启动变量
* spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
*
* 3、获取IP
* String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
**********************************************************************************************/
}
4、写业务代码
@Slf4j
@Component()
public class TestJob {
@XxlJob("testJob")
public void exec1() {
log.info("测试====================" );
}
}
// 注意 @XxlJob 注解里面的值用于配置调度中心中JobHandler 配置

5、docker部署xxl-job
5.1、docker-compose-environment.yml 文件加上 xxl-job-admin 相关配置
# http://127.0.0.1:9090/xxl-job-admin admin/123456 - 安装后稍等会访问即可
# 官网镜像为 xuxueli/xxl-job-admin:2.4.1
xxl-job-admin:
image: xuxueli/xxl-job-admin:2.4.1 #M1 Mac 更换镜像 kuschzzp/xxl-job-aarch64:2.4.0
container_name: xxl-job-admin
restart: always
depends_on:
- mysql
ports:
- "9090:9090"
links:
- mysql
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/xxl_job?serverTimezone=UTC&characterEncoding=utf8&autoReconnect=true&serverTimezone=Asia/Shanghai
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=123456
- SERVER_PORT=9090
networks:
- my-network
5.2、xxl_job.sql文件上传到mysql/sql 文件目录中,mysql启动执行

5.3、启动
docker-compose -f docker-compose-environment.yml
6、登录xxl-job页面并配置相关定时任务
// 登录页面
http://XXX:9090/xxl-job-admin admin/123456
// 新增执行器
注意 yml 和 页面执行器AppName 要一致
// 新增任务管理
注意JobHandler配置为代码@XxlJob注解里面的value 例如: @XxlJob("testJob")

© 版权声明
文章版权归作者所有,未经允许请勿转载。
