docker-compose.yml样例(mysql主从+mycat读写分离)
Docker-compose.yml文件示例
1、mysql主从复制的docker-compose.yml文件
# cat docker-compose.yml
version: '2' # 这个version是指dockerfile解析时用的版本,不是给我们自己定义版本号用的.
services:
m1: # master
build: ./master # ./master文件下需要有Dockerfile文件,并且build属性和image属性不能一起使用
container_name: m1 # 容器名
volumes: # 挂载 下边每行前边的`-`代表这个东西是数组的一个元素.就是说volumes属性的值是一个数组
- /home/ssab/config/mysql-master/:/etc/mysql/:ro # 注意改下映射关系
- /etc/localtime:/etc/localtime:ro
- /home/ssab/config/hosts:/etc/hosts:ro # 注意改下映射关系
networks: # 网络
mysql: # 见跟services平级的networks,在最下边
ipv4_address: 172.18.0.2 # 设置静态ipv4的地址
ulimits: # 操作系统限制
nproc: 65535
hostname: m1 # hostname
mem_limit: 1024m # 最大内存使用不超过1024m,我在本地机器上测试,才只写了1024m,生产上需要根据自己的服务器配置,以及docker容器数进行调优.
restart: always # 容器重启策略
environment: # 设置环境变量
MYSQL_ROOT_PASSWORD: m1test
s1: # slave1
build: ./s1
container_name: s1
volumes:
- /home/ssab/config/mysql-s1/:/etc/mysql/:ro
- /etc/localtime:/etc/localtime:ro
- /home/ssab/config/hosts:/etc/hosts:ro
networks:
mysql:
ipv4_address: 172.18.0.3
links:
- m1
ulimits:
nproc: 65535
hostname: s1
mem_limit: 1024m
restart: always
environment:
MYSQL_ROOT_PASSWORD: s1test
s2:# slave2
build: ./s2
container_name: s2
volumes:
- /home/ssab/config/mysql-s2/:/etc/mysql/:ro
- /etc/localtime:/etc/localtime:ro
- /home/ssab/config/hosts:/etc/hosts:ro
links:
- m1
networks:
mysql:
ipv4_address: 172.18.0.4
ulimits:
nproc: 65535
hostname: s2
mem_limit: 1024m
restart: always
environment:
MYSQL_ROOT_PASSWORD: s2test
networks: # docker网络设置
mysql: # 自定义网络名称
driver: bridge # 桥接
ipam: # 要使用静态ip必须使用ipam插件
driver: default
config:
- subnet: 172.18.0.0/24
gateway: 172.18.0.1
2、mycat+mysql读写分离的docker-compose.yml文件:
# cat dicker-compose.yml
version:'2'
services:
m1:
build:./master
container_name:m1
volumes:
-/home/ssab/config/mysql-master/:/etc/mysql/:ro
-/etc/localtime:/etc/localtime:ro
-/home/ssab/config/hosts:/etc/hosts:ro
ports:
-"3309:3306"#暴露mysql的端口
networks:
mysql:
ipv4_address:172.18.0.2
ulimits:
nproc:65535
hostname:m1
mem_limit:1024m
restart:always
environment:
MYSQL_ROOT_PASSWORD:m1test
s1:
build:./s1
container_name:s1
volumes:
-/home/ssab/config/mysql-s1/:/etc/mysql/:ro
-/etc/localtime:/etc/localtime:ro
-/home/ssab/config/hosts:/etc/hosts:ro
ports:
-"3307:3306"
networks:
mysql:
ipv4_address:172.18.0.3
links:
- m1
ulimits:
nproc:65535
hostname:s1
mem_limit:1024m
restart:always
environment:
MYSQL_ROOT_PASSWORD:s1test
s2:
build:./s2
container_name:s2
volumes:
-/home/ssab/config/mysql-s2/:/etc/mysql/:ro
-/etc/localtime:/etc/localtime:ro
-/home/ssab/config/hosts:/etc/hosts:ro
ports:
-"3308:3306"
links:
- m1
networks:
mysql:
ipv4_address:172.18.0.4
ulimits:
nproc:65535
hostname:s2
mem_limit:1024m
restart:always
environment:
MYSQL_ROOT_PASSWORD:s2test
mycat:# 设置mycat
build:./mycat
container_name:mycat
volumes:
-/home/ssab/config/mycat/:/mycat/conf/:ro# mycat配置文件
-/home/ssab/config/mycat-logs/:/mycat/logs/:rw# mycat日志文件
-/etc/localtime:/etc/localtime:ro
-/home/ssab/config/hosts:/etc/hosts:ro
ports:
-"8066:8066"# 暴露mycat服务端口
-"9066:9066"# 暴露mycat管理端口
links:# mycat可以连接m1 s1 s2
- m1
- s1
- s2
networks:
mysql:
ipv4_address:172.18.0.5
ulimits:
nproc:65535
hostname:mycat
mem_limit:1024m
restart:always
networks:
mysql:
driver:bridge
ipam:
driver:default
config:
-subnet:172.18.0.0/24
gateway:172.18.0.1
mysql的Dockerfile样例:
FROMmysql:5.7.17
MAINTAINER<ssabwork_wjj@163.com>
EXPOSE 3306
CMD ["mysqld"]
mycat的Dockerfile样例:
FROM java:8-jre
MAINTAINER<ssab work_wjj@163.com>
LABEL Description="使用mycat做mysql数据库的读写分离"
ENV mycat-versionMycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
USER root
COPY./Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz/
RUN tar-zxf/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
ENV MYCAT_HOME=/mycat
ENV PATH=$PATH:$MYCAT_HOME/bin
WORKDIR$MYCAT_HOME/bin
RUN chmod u+x./mycat
EXPOSE80669066
CMD["./mycat","console"]
docker-compose.yml样例(mysql主从+mycat读写分离)的更多相关文章
- 使用docker 实现MySQL主从同步/读写分离
1. 利用 docker 实现 mysql 主从同步 / 读写分离 为了保证数据的完整和安全,mysql 设计了主从同步,一个挂掉还可以用另个.最近重构论坛,想来改成主从吧.担心失误,就先拿 dock ...
- Docker容器启动Mysql,Docker实现Mysql主从,读写分离
Docker容器启动Mysql,Docker实现Mysql主从,读写分离 一.Docker文件编排 二.配置主从复制 2.1 配置master 2.2 配置slave 三.验证主从复制 3.1 mas ...
- 聊聊Mysql主从同步读写分离配置实现
Hi,各位热爱技术的小伙伴您们好,好久没有写点东西了,今天写点关于mysql主从同步配置的操作日志同大家一起分享.最近自己在全新搭建一个mysql主从同步读写分离数据库简单集群,我讲实际操作步骤整理分 ...
- Mysql主从配置+读写分离
Mysql主从配置+读写分离 MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. ...
- Mysql主从配置+读写分离(转)
MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. 注:安装前须查看是否已经安装了 ...
- Mysql之Mycat读写分离及分库分表
## 什么是mycat ```basic 1.一个彻底开源的,面向企业应用开发的大数据库集群 2.支持事务.ACID.可以替代MySQL的加强版数据库 3.一个可以视为MySQL集群的企业级数据库,用 ...
- mysql 主从同步-读写分离
主从同步与读写分离测试 一. 实验环境(主从同步) Master centos 7.3 192.168.138.13 Slave ...
- mysql主从同步--读写分离。
1.mysql 安装参考 https://www.cnblogs.com/ttzzyy/p/9063737.html 2. 主mysql,从mysql 指定配置文件启动 mysqld --defaul ...
- springboot多数据源配合docker部署mysql主从实现读写分离
本篇主要有两部分: 1.使用docker部署mysql主从 实现主从复制 2.springboot项目多数据源配置,实现读写分离 一.使用docker部署mysql主从 实现主从复制 此次使用的是wi ...
随机推荐
- 让cxGrid像Excel那样高亮显示选区的行号列标
http://www.oschina.net/code/snippet_54100_1102 Developer Express的cxGrid控件是一个相当有特色的数据栅格组件,支持自动分组.卡片式显 ...
- sqlserver错误2,error 40
打开配置管理器:开始-> sqlserver2014->配置工具->配置管理器 选择sqlserver服务,并将右侧箭头的指向右击设为启动就OK了
- 【C#进阶】委托那些事儿(二)
二.传统的委托 接下来讲一讲方法参数.下面以“餐馆服务员为客户下单”[2]的事件作为描述.一般对事件的做法分3个部分: 1. 方法参数 EventArgs,一般用于传送数据.在本例场景中 public ...
- Android Studio无法连接真机的问题?
我不说,你可能又浪费半天时间,最后的结果,你可能还是没能解决!!! 现在,一般安卓手机为了安装软件方便,一般都安装了豌豆荚,但是,就是这个豌豆荚占用了Android Studio的ADB端口,导致An ...
- 纯文本-FileOutputStream的解码方式
1.通过string.getBytes(charsetNane)获得的字节数组,字节数组的编码方式,决定了FileOutStream写出文件的格式 例1:字节数组采用“GBK”编码,write生成的文 ...
- “全栈2019”Java多线程第二十六章:同步方法生产者与消费者线程
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- Django + DRF + Elasticsearch 实现搜索功能
django使用haystack来调用Elasticsearch搜索引擎 如何使用django来调用Elasticsearch实现全文的搜索 Haystack为Django提供了模块化的搜索.它的特 ...
- position:absolute元素 怎样居中
<div style = 'height:20px;position:absolute;z-index:9999;top:0;left:0;right:0;margin:auto;'> & ...
- webpack快速入门——webpack3.X 快速上手一个Demo
1.进入根目录,建两个文件夹,分别为src和dist 1).src文件夹:用来存放我们编写的javascript代码,可以简单的理解为用JavaScript编写的模块. 2).dist文件夹:用来存放 ...
- 关于省,市,区联动 java 实现方式
关于省,市,区的三级联动后台的实现有两种方式: 1:分三次请求各自取出 省 市 区 的数据: 2:一次请求获得所有的数据,并且组装成相依的数据结构到前端: 其中第一种方式: 会导致数据的延迟加载,出现 ...