创建Dockerfile文件,构建mycat2镜像
Dockerfile内容如下:
FROM docker.io/adoptopenjdk/openjdk8:latest
ENV AUTO_RUN_DIR ./mycat2
ENV DEPENDENCE_FILE mycat2-1.20-jar-with-dependencies-2021-9-15.jar
ENV TEMPLATE_FILE mycat2-install-template-1.20.zip
RUN buildDeps='procps wget unzip'
&& apt-get update
&& apt-get install -y $buildDeps
RUN wget -P $AUTO_RUN_DIR/ http://dl.mycat.org.cn/2.0/1.20-release/$DEPENDENCE_FILE
&& wget -P $AUTO_RUN_DIR/ http://dl.mycat.org.cn/2.0/install-template/$TEMPLATE_FILE
RUN 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/conf
VOLUME /usr/local/mycat/logs
EXPOSE 8066 1984
CMD ["/usr/local/mycat/bin/mycat", "console"]
创建mycat2的images
docker build -t mycat.org.cn/mycat2:20220111 . docker network create mycat2 --driver bridge docker run --name myMysql --network mycat2 -e MYSQL_ROOT_PASSWORD=admin -p 3306:3306 -d mysql # 启动mysql容器 进入mysql容器后执行cat /etc/hosts查看IP # mysql创建用户以及对应的权限配置,用户名为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
wget http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.20.zip unzip mycat2-install-template-1.20.zip mv mycat/conf/ ./conf && rm -rf mycat
修改mycat的conf下prototype的配置
启动mycat之前需要确认prototype数据源所对应的mysql数据库配置,修改对应的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://172.18.0.2:3306/test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
"user":"mycat",
"weight":0
}
启动mycat镜像
docker run --network mycat2 --rm -it -p 8066:8066 -v D:xxmycatconf:/usr/local/mycat/conf -v D:xxmycatlogs:/usr/local/mycat/logs mycat.org.cn/mycat2:20220111



