Docker构建Mycat

Mycat是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行。

Mycat支持多种数据库接入,如:MySQL、SQLServer、Oracle、MongoDB 等,推荐使用MySQL 做集群。

1. 创建Mycat配置文件夹

mkdir /usr/local/mycat
mkdir /usr/local/mycat/conf

2. 创建docker文件夹

mkdir /usr/local/docker/mycat/
cd /usr/local/docker/mycat

3. 下载mycat安装包

wget https://github.com/MyCATApache/Mycat-download/blob/master/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
mv Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz mycat.tar.gz

4. 解压并复制文件

tar -zxvf mycat.tar.gz
cp -r mycat/conf/ /usr/local/mycat

5. 创建Dockerfile文件

#基于openjdk:8 创建镜像,
#如果是基于centos或其他的,必须保证已安装了JDK,否则就需要在Dockerfile文件中也ADD进来
FROM openjdk:8

#将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
#将mycat解压到/usr/local目录中,得到 /usr/local/mycat
ADD mycat.tar.gz /usr/local

#容器数据卷,用于数据保存和持久化工作
#将mycat的配置文件的地址暴露出映射地址,启动时直接映射宿主机的文件夹
VOLUME /usr/local/mycat
WORKDIR /usr/local/mycat

#用来在构建镜像过程中设置环境变量
ENV MYCAT_HOME=/usr/local/mycat

#暴露出MyCat的所需端口
EXPOSE 8066 9066

#以前台进程的方式启动MyCat服务
CMD ["/usr/local/mycat/bin/mycat", "console","&"]

6. 构建镜像

# 注意最后还有 .
docker build -t mycat-1.6.6.1 .

7. 启动容器

#容器券:-v /usr/local/mycat/conf/:/usr/local/mycat/conf/
#冒号前是本机路径,冒号后是容器内的目录路径
#创建多个容器卷,尤其是配置文件和日志
docker run --name mycat -p 8066:8066 -p 9066:9066 -v /usr/local/mycat/conf/:/usr/local/mycat/conf/ -v /usr/local/mycat/logs/:/usr/local/mycat/logs/ -d mycat-1.6.6.1

注:为了确定容器券设置是否有效,可以在本机的目录下改下配置文件,进入容器内查看文件是否改变,如果一致,则设置成功。

防火墙设置,需要开放mycat的连接端口8066和管理端口9066。

8. 进入容器和退出容器

# 进入容器
docker exec -it 1b652326460e /bin/bash

# 两种退出方式
# 第一种:容器停止退出,在容器终端输入exit
# 第二种:容器不停止退出,在容器终端按Ctrl+P+Q

9. 配置

编辑/usr/local/mycat/conf/目录下的server.xml,schema.xml等配置文件。

schema.xml的配置如下:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">

                <table name="user" primaryKey="ID" autoIncrement="true" dataNode="dn1" />
        </schema>
        <dataNode name="dn1" dataHost="localhost1" database="mydb" />
        <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1">
                <heartbeat>select user()</heartbeat>
                <writeHost host="hostS1" url="111.111.111.111:1111" user="root"
                                   password="123456" />
        </dataHost>
</mycat:schema>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值