Docker小白搭建xxl-job,mysql的过程日志

搭建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安装与命令可参看视频

一般常用的命令:

  1. docker pull
  2. docker --version
  3. docker info | Select-String "Docker Root Dir"
  4. docker images
  5. docker rmi < DockerID >
  6. docker ps 解释ps即Process status
  7. docker run
  8. docker start < DockerID >
  9. docker stop < DockerID >
  10. docker compose up -f < file.yaml > -d
  11. docker compose down -f < file.yaml >
  12. docker rm < DockerID >
  13. docker volume inspect < DockerID >
  14. docker network list
    其中docker run的重要参数-d detached后台运行;-p 宿主机端口:容器内的端口;-v 即挂载券

Docker的镜像站,在Docker-Setting-Docker Engine中增加配置

"registry-mirrors": [

"https://docker.1ms.run",

"https://docker.xuanyuan.me",

"https://docker.1ms.run",

"https://docker.m.daocloud.io",

"https://docker.1panel.live",

"https://mirror.ccs.tencentyun.com",

"http://mirrors.ustc.edu.cn",

"https://docker.chenby.cn"

]

docker-compose.yaml是一个轻量级docker编辑框架,可以将多个docker启动并且放在一个子网中。

MySql的Docker安装与启动

  1. 访问https://hub.docker.com/,可以查看有哪些docker镜像
  2. docker pull mysql:5.7 可以指定版本号,也可以用latested
  3. 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的目录映射
  4. 将命令改写成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

参考mysql docker 安装

XXL-JOB的Docker安装与启动

  1. 通过docker pull xuxueli/xxl-job-admin:3.3.1,拉取Docker Image

  2. 通过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.x

    FLUSH PRIVILEGES;

  3. 启动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

  4. 启动后访问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直接执行还没有找到正确的方法,需要优化。

相关推荐
春日见33 分钟前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡42 分钟前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器
斯普信专业组1 小时前
构建基于MCP的MySQL智能运维平台:从开源服务端到交互式AI助手
运维·mysql·开源·mcp
liu****2 小时前
2.深入浅出理解虚拟化与容器化(含Docker实操全解析)
运维·c++·docker·容器·虚拟化技术
Exquisite.2 小时前
Mysql
数据库·mysql
logocode_li3 小时前
OCI/CRI 双标准下:从 dockerd 到 containerd 的 K8s 运行时迭代史
docker·云原生·容器·k8s
_运维那些事儿14 小时前
VM环境的CI/CD
linux·运维·网络·阿里云·ci/cd·docker·云计算
·云扬·14 小时前
MySQL Binlog落盘机制深度解析:性能与安全性的平衡艺术
android·mysql·adb
霖霖总总15 小时前
[小技巧64]深入解析 MySQL InnoDB 的 Checkpoint 机制:原理、类型与调优
数据库·mysql
それども16 小时前
分库分表的事务问题 - 怎么实现事务
java·数据库·mysql