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 http://dl.mycat.io/1.6.6.1/Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz
mv Mycat-server-1.6.6.1-release-20181031195535-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="192.168.178.5:12345" user="root" password="123456" /> </dataHost> </mycat:schema>
更多详细的配置请看:
10. Navicat连接
时刻与技术进步,每天一点滴,日久一大步!!!
本博客只为记录,用于学习,如有冒犯,请私信于我。