注意修改以下的jar与安装包壳压缩包的版本
docker运行的mycat2无法通过工具连接,请把server.json的ip设置为0.0.0.0
创建镜像
在linux中创建文件
Dockerfile
FROM docker.io/adoptopenjdk/openjdk8:latestENV AUTO_RUN_DIR ./mycat2ENV DEPENDENCE_FILE mycat2-1.22-release-jar-with-dependencies-5-12.jarENV TEMPLATE_FILE mycat2-install-template-1.21.zipRUN sed -i "s@http://.*archive.ubuntu.com@http://mirrors.aliyun.com@g" /etc/apt/sources.listRUN sed -i "s@http://.*security.ubuntu.com@http://mirrors.aliyun.com@g" /etc/apt/sources.listRUN buildDeps='procps wget unzip' \&& apt-get update \&& apt-get install -y $buildDepsRUN wget -P $AUTO_RUN_DIR/ http://dl.mycat.org.cn/2.0/1.22-release/$DEPENDENCE_FILE \&& wget -P $AUTO_RUN_DIR/ http://dl.mycat.org.cn/2.0/install-template/$TEMPLATE_FILERUN cd $AUTO_RUN_DIR/ \&& unzip $TEMPLATE_FILE \&& ls -al . \&& mv $DEPENDENCE_FILE mycat/lib/ \&& chmod +x mycat/bin/* \&& chmod 755 mycat/lib/* \&& mv mycat /usr/local#copy mycat /usr/local/mycat/VOLUME /usr/local/mycat/confVOLUME /usr/local/mycat/logsEXPOSE 8066 1984CMD ["/usr/local/mycat/bin/mycat", "console"]
创建images
docker build -t mycat.org.cn/mycat2:20220513 .
创建mysql
如果有现成的mysql,以及mysql用户可以跳过当前步骤;
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
mysql用户创建
登录进去mysql(账号:root,密码:123456),并创建用户以及对应的权限配置,用户名为mycat,密码为123456,赋权限XA_RECOVER_ADMIN对于mysql 8需要,低版本不需要
CREATE USER 'mycat'@'%' IDENTIFIED BY '123456';--必須要複的權限GRANT XA_RECOVER_ADMIN ON *.* TO 'root'@'%';---視情況賦值權限GRANT ALL PRIVILEGES ON *.* TO 'mycat'@'%' ;flush privileges;
mycat配置文件
创建配置文件conf
cd /data/mycat2wget http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.21.zipunzip mycat2-install-template-1.21.zipmv mycat/conf/ ./conf && rm -rf mycat
修改mycat的conf下prototype的配置(文件路径conf/datasources/prototypeDs.datasource.json)
修改其中对应的user(用户),password(密码),url中的ip
{"dbType":"mysql","idleTimeout":60000,"initSqls":[],"initSqlsGetConnection":true,"instanceType":"READ_WRITE","maxCon":1000,"maxConnectTimeout":3000,"maxRetryCount":5,"minCon":1,"name":"prototypeDs","password":"123456","type":"JDBC","url":"jdbc:mysql://169.254.212.3:3306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8","user":"mycat","weight":0}
启动镜像
docker run \--rm \-it \-p 8066:8066 \-p 1984:1984 \-v /data/mycat2/conf:/usr/local/mycat/conf \-v /data/mycat2/logs:/usr/local/mycat/logs \mycat.org.cn/mycat2:20220513
网友touch提供docker例子
# 镜像# docker build -t mycat2.0:1.20 .FROM openjdk:18-slim-buster# 作者MAINTAINER TouchRUN sed -i s/deb.debian.org/mirrors.cloud.tencent.com/g /etc/apt/sources.listRUN apt-get update -y && apt-get install wget -y && apt-get install unzip -y && apt-get install procps -y \&& cd /usr/local && wget http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.20.zip \&& unzip mycat2-install-template-1.20.zip \&& cd /usr/local/mycat/lib \&& wget http://dl.mycat.org.cn/2.0/1.20-release/mycat2-1.20-jar-with-dependencies-2021-8-27.jar \&& cd /usr/local/mycat/bin \&& chmod +x ./*ENTRYPOINT ["/usr/local/mycat/bin/mycat", "console"]EXPOSE 8066 1984 9066 7066
