这个镜像是参考LookBack博客文章对MariaDB官方镜像的制作过程做简单修改和扩展,保留了官方镜像原有的使用方法和启动参数,仅仅是针对利用Docker镜像创建MariaDB主从复制集群的场景做了些调整。除过官方镜像的常规玩法外,该镜像还可以像下面这样玩:
基于本仓库制作镜像下载:
docker pull michaelwu2018/mariadb-cluster:10.1.37
官方玩法链接:https://hub.docker.com/_/mariadb/
docker run -d \
--name some-mariadb \
-e TIMEZONE=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
michaelwu2018/mariadb-cluster:10.1.37
首先创建一个docker network
docker network create mariadb-cluster
然后再执行:
docker run -d \
--name mariadb-master \
--network mariadb-cluster \
-e TIMEZONE=Asia/Shanghai \
-v /data/mariadb-master:/data/mariadb \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MASTER=1 \
-e MYSQL_REPLICATION_USER=repl_user \
-e MYSQL_REPLICATION_PASSWORD=123456 \
-p 3306:3306 \
michaelwu2018/mariadb-cluster:10.1.37
docker run -d \
--name mariadb-slave \
--network mariadb-cluster \
-e TIMEZONE=Asia/Shanghai \
-v /data/mariadb-master:/data/mariadb \
-e MYSQL_ROOT_PASSWORD=123456 \
-e SLAVE=1 \
-e MYSQL_REPLICATION_USER=repl_user \
-e MYSQL_REPLICATION_PASSWORD=123456 \
-e MYSQL_MASTER_HOST=mariadb-master \
-e MYSQL_MASTER_PORT=3306 \
-e MASTER_LOG_FILE=mysqld-bin.000005 \
-e MASTER_LOG_POS=328 \
michaelwu2018/mariadb-cluster:10.1.37
version: '3.1'
services:
mysql-master:
environment:
TZ: "Asia/Shanghai"
MASTER: "1"
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_REPLICATION_USER: "repl_user"
MYSQL_REPLICATION_PASSWORD: "123456"
MYSQL_DATABASE: "mydb"
image: michaelwu2018/mariadb-cluster:10.1.37
ports:
- "3306:3306"
restart: unless-stopped
hostname: mysql-master
mysql-slave:
environment:
TZ: "Asia/Shanghai"
SLAVE: "1"
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_REPLICATION_USER: "repl_user"
MYSQL_REPLICATION_PASSWORD: "123456"
MYSQL_MASTER_HOST: "mysql-master"
MYSQL_MASTER_PORT: "3306"
MASTER_LOG_FILE: "mysqld-bin.000005"
MASTER_LOG_POS: "328"
MYSQL_DATABASE: "mydb"
image: michaelwu2018/mariadb-cluster:10.1.37
links:
- mysql-master
restart: unless-stopped
hostname: mysql-slave
和官方镜像同名的参数意义不变,这里仅对新增参数做简单说明。
使用MASTER=1
标识镜像以Master节点启动,需要配合MYSQL_REPLICATION_USER
和MYSQL_REPLICATION_PASSWORD
两个参数使用
使用SLAVE=1
标识镜像以Slave节点启动,需要配合MYSQL_REPLICATION_USER
、MYSQL_REPLICATION_PASSWORD
、MYSQL_MASTER_HOST
、MYSQL_MASTER_PORT
、MASTER_LOG_FILE
和MASTER_LOG_POS
六个参数使用
主从复制用户的用户名
主从复制用户的用户密码
Master节点IP或Host
Master节点端口
主从同步起始文件名称,默认可以使用mysqld-bin.000005
作为其值,具体视情况而定。
主从同步起始文件位置,默认可以使用328
作为其值,具体视情况而定。
镜像启动时会向/etc/mysql/conf.d/mariadb.cnf
文件配置随机的server-id
,小的mariadb复制集群应该不用考虑其会重复的问题,也不用配置server-id
。