搭建xxl-job,mysql的过程日志
Docker特性与命令
Docker-Desktop安装
因为是Windows环境,安装的教程很多,主要就是启动Hyper-V的组件,然后安装WSL
安装WSL,首先执行命令wsl --set-defualt-version 2,将wsl的默认版本设置version2,然后执行命令wsl --update --web-download,然后下载docker-desktop,选择CPU对应架构的安装包,并进行安装。安装docker如果想指定安装目录可以使用命令行安装,start /w ""
"Docker Desktop Installer.exe" install --installation-dir=D:\Docker
对于Docker安装与命令可参看视频
一般常用的命令:
- docker pull
- docker --version
- docker info | Select-String "Docker Root Dir"
- docker images
- docker rmi < DockerID >
- docker ps 解释ps即Process status
- docker run
- docker start < DockerID >
- docker stop < DockerID >
- docker compose up -f < file.yaml > -d
- docker compose down -f < file.yaml >
- docker rm < DockerID >
- docker volume inspect < DockerID >
- docker network list
其中docker run的重要参数-d detached后台运行;-p 宿主机端口:容器内的端口;-v 即挂载券
Docker的镜像站,在Docker-Setting-Docker Engine中增加配置
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://mirror.ccs.tencentyun.com",
]
docker-compose.yaml是一个轻量级docker编辑框架,可以将多个docker启动并且放在一个子网中。
MySql的Docker安装与启动
- 访问https://hub.docker.com/,可以查看有哪些docker镜像
- docker pull mysql:5.7 可以指定版本号,也可以用latested
- docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=your_password -e MYSQL_DATABASE=mydb -e MYSQL_USER=mydb_user -e MYSQL_PASSWORD=123456 --publish 3306:3306 -v D:/dockers/xxljob:/var/lib/mysql -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci, 其中通过volume挂载将本地的目录与mysql的目录映射
- 将命令改写成docker-compose.yaml文件如下:
yaml
version: '5.7'
services:
db:
image: mysql:5.7
container_name: mysql-server
volumes:
- mysql-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: your_password
MYSQL_DATABASE: mydb
MYSQL_USER: admin
MYSQL_PASSWORD: 123456
ports:
- "3306:3306"
volumes:
mysql-data:
driver: local
driver_opts:
o: bind
type: none
device: D:/dockers/mysql_db
XXL-JOB的Docker安装与启动
-
通过docker pull xuxueli/xxl-job-admin:3.3.1,拉取Docker Image
-
通过git获取xxl-job的代码,git clone https://gitee.com/xuxueli0323/xxl-job.git, 并找到\xxl-job\doc\db的db目录下的tables_xxl_job.sql,创建xxl_job的数据库。创建时请用root的用户名登录,然后建一个专用用户
CREATE USER xxl_job@'%';
ALTER USER xxl_job@'%' IDENTIFIED BY '123456789';用户授权
-- 给用户 userName 授予数据库(db001)的 SELECT,INSERT,UPDATE,DELETE,CREATE,DROP 权限
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON xxl_job.* TO xxl_job@'%' IDENTIFIED BY '123456789'; -- mysql 5.x
-- GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON xxl_job.* TO xxl_job@'%' WITH GRANT OPTION; -- mysql 8.xFLUSH PRIVILEGES;
-
启动Docker:docker run --name xxl-job-admin -e PARAMS="--spring.datasource.url=jdbc:mysql://172.29.160.1:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=xxl_job --spring.datasource.password=123456789 --server.port=8080 --server.servlet.context-path=/xxl-job-admin" -p 8080:8080 -d xuxueli/xxl-job-admin:3.3.1
-
启动后访问http://127.0.0.1:8080/xxl-job-admin,默认账号:amdin 密码:123456
参考xxl-job docker启动
遇到的一些问题
1、总是想找docker-desktop-data的文件,但是输入\\wsl$,就只能看到docker-desktop,找了很多资料初步分析是高版本的docker-desktop就没有data这个目录了。因为没有docker-desktop-data的stop的状态;后来不纠结了,因为只要文件是放在docker->Setting->Resources->Disk Image Location下就行。因为这个目录无法直接访问,所以无法直接查看Image
2、数据库sql文件的执行,通过dbever的sql直接执行还没有找到正确的方法,需要优化。