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-version Mycat-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
EXPOSE 80669066
CMD ["./mycat","console"]

docker-compose.yml样例(mysql主从+mycat读写分离)的更多相关文章

  1. 使用docker 实现MySQL主从同步/读写分离

    1. 利用 docker 实现 mysql 主从同步 / 读写分离 为了保证数据的完整和安全,mysql 设计了主从同步,一个挂掉还可以用另个.最近重构论坛,想来改成主从吧.担心失误,就先拿 dock ...

  2. Docker容器启动Mysql,Docker实现Mysql主从,读写分离

    Docker容器启动Mysql,Docker实现Mysql主从,读写分离 一.Docker文件编排 二.配置主从复制 2.1 配置master 2.2 配置slave 三.验证主从复制 3.1 mas ...

  3. 聊聊Mysql主从同步读写分离配置实现

    Hi,各位热爱技术的小伙伴您们好,好久没有写点东西了,今天写点关于mysql主从同步配置的操作日志同大家一起分享.最近自己在全新搭建一个mysql主从同步读写分离数据库简单集群,我讲实际操作步骤整理分 ...

  4. Mysql主从配置+读写分离

    Mysql主从配置+读写分离     MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. ...

  5. Mysql主从配置+读写分离(转)

       MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. 注:安装前须查看是否已经安装了 ...

  6. Mysql之Mycat读写分离及分库分表

    ## 什么是mycat ```basic 1.一个彻底开源的,面向企业应用开发的大数据库集群 2.支持事务.ACID.可以替代MySQL的加强版数据库 3.一个可以视为MySQL集群的企业级数据库,用 ...

  7. mysql 主从同步-读写分离

    主从同步与读写分离测试 一.  实验环境(主从同步) Master                   centos 7.3              192.168.138.13 Slave     ...

  8. mysql主从同步--读写分离。

    1.mysql 安装参考 https://www.cnblogs.com/ttzzyy/p/9063737.html 2. 主mysql,从mysql 指定配置文件启动 mysqld --defaul ...

  9. springboot多数据源配合docker部署mysql主从实现读写分离

    本篇主要有两部分: 1.使用docker部署mysql主从 实现主从复制 2.springboot项目多数据源配置,实现读写分离 一.使用docker部署mysql主从 实现主从复制 此次使用的是wi ...

随机推荐

  1. How To Change the Supplier Bank Account Masking in UI (Doc ID 877074.1)

      Give Feedback...           How To Change the Supplier Bank Account Masking in UI (Doc ID 877074.1) ...

  2. LeetCode137:Single Number II

    题目: Given an array of integers, every element appears three times except for one. Find that single o ...

  3. 关于STM32位带操作随笔

    以前在学习STM32时候关注过STM32的位带操作,那时候只是知道位带是啥,用来干嘛用,说句心里话,并没有深入去学习,知其然而不知其所以然.但一直在心中存在疑惑,故今日便仔细看了一下,写下心得供日后参 ...

  4. AJPFX的监管与执照

      AJPFX受到英国金融行为监管局(FCA)授权和监管. 英国FCA是目前世界上金融服务最完善.最健全的监管机构,英国FCA对所有在其境内注册的金融服务机构进行严格的监管. 英国金融行为监管局(FC ...

  5. Day 25 多态.

    一.多态的概念 多态指的是一类事物有多种形态.动物有多种形态:人,狗,猪 from abc import ABCMeta,abstractmethod class Animal(metaclass=a ...

  6. elasticsearch Geo Distance Query

    Geo Distance Query 过滤器文档只包括在一个特定距离内存在于一个地理点上的命中.假设下列映射和索引文档: PUT /my_locations { "mappings" ...

  7. ffmpeg开发基础知识

    1.音频采集 面临的问题:延时敏感,噪声消除,回声消除,静音检测 主要参数: 采样率,位宽,声道数,音视频帧 采样率: 也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它 ...

  8. iOS开发总结--三方平台开发之分享

    1.前言 在公司参与了多个应用三方平台的开发,涉及微信.微博.QQ.Facebook.meetup等,总结一下一般的接入三方平台SDK方法. 2.接入三方SDK 任何应用要接入三方平台,都需要在该平台 ...

  9. 使用R进行分组统计

    分组统计数据集是很常见的需求,R中也有相应的包支持数据集的分组统计.自己尝试了写了段R代码来完成分组统计数据集,支持公式,感觉用起来还算方便.代码分享在文章最后. 使用方式: step 1: sour ...

  10. 剑指offer四十之数组中只出现一次的数字

    一.题目 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 二.思路 建一个hashMap,统计各数字出现的次数,然后遍历hashMap,输出出现一次的数字 ...