项目涉及xxl_job,mysql,redis联合部署
Docker安装MYSQL5.7
1.拉取镜像
docker pull mysql:5.7
2.创建容器
docker run -d -p 3306:3306 --privileged=true -v /docker/mysql/conf/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD='123456' --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
3.进入容器
docker exec -it mysql mysql -h 192.168.70.151 -u root -p
4.拷贝xxl_job的SQL文件到mysql容器中
docker cp yyy.sql mysql:/yyy.sql
添加如图配置
![](https://i-blog.csdnimg.cn/blog_migrate/bd9f1b14944bd4e48383a45e8efe28fd.png)
5.创建数据库
mysql> create database yyy;
mysql> use yyy;
6.登陆控制台执行source 命令
mysql> source yyy.sql
use xxl_job;
show tables;
如图表示插入数据成功
![](https://i-blog.csdnimg.cn/blog_migrate/c5dc4c7892a9a4b9aca7fe0cc9adb5b9.png)
7.将xxl_job打成jar包
8.编写Dockfile文件
FROM java:8
VOLUME /tmp
ADD xxl-job-admin-2.4.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
如图放在同级目录下
![](https://i-blog.csdnimg.cn/blog_migrate/8717623397d61ec79afea059f8518cce.png)
9.创建自己的镜像
docker build -t xxl-job-admin:2.4.0-SNAPSHOT .
![](https://i-blog.csdnimg.cn/blog_migrate/82e794845ba2c7dc4c205ff276eec0bd.png)
10.生成docker容器
docker build -t xxl-job-admin:2.4.0-SNAPSHOT .
![](https://i-blog.csdnimg.cn/blog_migrate/5376a837fe8f4cf1a9dd37d7e7365182.png)
进入容器:docker exec -it xxl-job-admin /bin/bash
停止容器:docker stop CONTAINER ID
开启容器:docker start CONTAINER ID
查看30分钟日志 docker logs --since 30m <容器名>
删除镜像:docker image rm CONTAINER ID
删除容器:docker rm -f CONTAINER ID
11.查看容器是否运行成功
![](https://i-blog.csdnimg.cn/blog_migrate/2a6ecbc9a182359a4575295b36b050d1.png)
安装redis
1.拉取镜像
docker pull redis
2.准备挂载的配置文件
mkdir -p /home/redis/myredis
配置文件
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#bind 127.0.0.1
protected-mode no
port 6379
tcp-backlog 511
requirepass 000415
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 30
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
3.启动redis
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 000415
4.通过docker ps指令查看启动状态
docker ps -a |grep myredis
5.查看容器运行日志
docker logs --since 30m <容器名>
安装后台项目的镜像
写DockerFile
FROM java:8
VOLUME /tmp
ADD spring-vue-wms-1.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
如图放在同一目录
![](https://i-blog.csdnimg.cn/blog_migrate/464ae5b8b8fa631ca3288f73893c32a2.png)
项目打jar包
创建镜像
docker build -t spring-vue-wms:1.0-SNAPSHOT .
导入项目数据到mysql
create DATABASE test1;
docker cp test1.sql mysql:/test1.sql
source test1.sql;
5.创建容器
docker run -d -p 9991:9991 --name spring-vue-wms spring-vue-wms:1.0-SNAPSHOT
6.查看容器是否运行成功
swagger成功访问
![](https://i-blog.csdnimg.cn/blog_migrate/beabd2f069a4ab22a9d8ee958716d14c.png)
测试:成功返回数据
![](https://i-blog.csdnimg.cn/blog_migrate/0b9d561a43ba894ab2a2caa4d61afde0.png)