zoukankan      html  css  js  c++  java
  • 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>

    更多详细的配置请看:

    Mycat的server.xml配置

    Mycat的schema.xml配置

    10. Navicat连接

  • 相关阅读:
    给你一个亿-电视节目总结
    给你一个亿-电视节目总结
    我的写作、爱好和好友
    我的写作、爱好和好友
    互联网和移动互联网怎么挣钱?
    互联网和移动互联网怎么挣钱?
    IT人都很忙(茫)
    Java实现 LeetCode 345 反转字符串中的元音字母
    Java实现 蓝桥杯 算法训练 谁干的好事?
    Java实现 蓝桥杯 算法训练 谁干的好事?
  • 原文地址:https://www.cnblogs.com/myitnews/p/12380074.html
Copyright © 2011-2022 走看看