docker专题系列之十六:安装mycat

由于docker镜像仓库中mycat镜像比较少或相对比较旧,因此一般使用手动制作镜像方式安装部署。下文,良哥通过实验,分别介绍两种方式下如何安装部署mycat。

一、手动制作镜像方式

1.创建镜像

#创建工作目录
mkdir /usr/rdc
mkdir /usr/rdc/mycat
cd /usr/rdc/mycat
#创建Dockerfile文件
vi Dockerfile
#Dockerfile中输入如下内容
FROM docker.io/adoptopenjdk/openjdk8:latest

ENV AUTO_RUN_DIR ./mycat2
ENV DEPENDENCE_FILE mycat2-1.22-release-jar-with-dependencies.jar
ENV TEMPLATE_FILE mycat2-install-template-1.21.zip


RUN sed -i "s@http://.*archive.ubuntu.com@http://mirrors.aliyun.com@g" /etc/apt/sources.list
RUN sed -i "s@http://.*security.ubuntu.com@http://mirrors.aliyun.com@g" /etc/apt/sources.list

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.22-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 9066
CMD ["/usr/local/mycat/bin/mycat", "console"]
创建images
docker build -t mycat.org.cn/mycat2:1.22 .

创建完成后查看一下生产的镜像:
在这里插入图片描述

2.获取mycat配置文件

cd /usr/rdc/mycat

# 下载文件
wget http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.21.zip

#解压
unzip mycat2-install-template-1.21.zip

# 将配置文件移动到工作目录
mkdir mycat2-1.22
mv ./mycat/conf ./mycat2-1.22/
mv ./mycat/logs ./mycat2-1.22/

3.修改配置文件
修改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://192.168.0.200:3306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
    "user":"mycat",
    "weight":0
}

4.启动镜像

docker run -p 8066:8066 -p 9066:9066 --privileged=true --name mycat2 -v /usr/rdc/mycat/mycat2-1.22/conf:/usr/local/mycat/conf -v /usr/rdc/mycat/mycat2-1.22/logs:/usr/local/mycat/logs -d mycat.org.cn/mycat2:1.22

5.放开防火墙端口

firewall-cmd --zone=public --add-port=8066/tcp --permanent
firewall-cmd --zone=public --add-port=9066/tcp --permanent
systemctl restart firewalld.service

二、使用现有镜像方式

1.查看镜像

docker search mycat

在这里插入图片描述

2.拉取镜像

docker pull longhronshens/mycat-docker

3.获取配置当前镜像版本的配置文件

#启动镜像
docker run --name mycat --privileged=true -p 8066:8066 -p 9066:9066 -d longhronshens/mycat-docker:latest

#进入容器
docker exec -it -u root mycat bash

#查找mycat
find / -name "mycat"
ls -l /usr/local/mycat

在这里插入图片描述

退出容器,将配置文件拷贝本地磁盘:

exit
cd /usr/mycat/
docker cp mycat:/usr/local/mycat/conf ./
docker cp mycat:/usr/local/mycat/logs ./

修改配置文件(参考:一、3.)

删除临时容器:

docker stop mycat
docker rm mycat

4.启动容器映射本地数据卷

docker run --privileged=true --name mycat -p 8066:8066 -p 9066:9066 -v /usr/rdc/mycat/conf:/usr/local/mycat/conf -v /usr/rdc/mycat/logs:/usr/local/mycat/logs -d longhronshens/mycat-docker:latest

5.放开防火墙端口
参考:一、5.

三、测试连接
使用navicat连接mycat
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hualinger/article/details/131542651