Alpine Linux Docker镜像基于Alpine Linux操作系统,后者是一个面向安全的轻型Linux发行版。不同于通常Linux发行版,Alpine Linux采用了musl libc和busybox以减小系统的体积和运行时资源消耗。在保持瘦身的同时,Alpine Linux还提供了自己的包管理工具apk,可以在其网站上查询,或者直接通过apk命令查询和安装。
Alpine Linux Docker镜像也继承了Alpine Linux发行版的这些优势。相比于其他Docker镜像,它的容量非常小,仅仅只有5M,且拥有非常友好的包管理器。
master主数据库配置文件my.cnf
https://github.com/ppabc/lanmp-alpine/blob/master/mysql5/my.cnf
编写Dockerfile
https://github.com/ppabc/lanmp-alpine/blob/master/mysql5/Dockerfile
构建docker镜像
docker build –tag lanmp-alpine:mysql -f Dockerfile .
创建MYSQL master容器
docker run –name mysql-master1 -p 3316:3306 -v /data1:/data -d ppabc/lanmp-alpine:mysql
登陆到主数据库容器,查看master状态
docker exec -it mysql-master1 sh
主数据库创建用户
SET sql_mode=(SELECT REPLACE(@@sql_mode,’ONLY_FULL_GROUP_BY’,”));
GRANT REPLICATION SLAVE ON *.* to ‘backup’@’%’ identified by ‘mysql_master’;
备份主数据库数据
mysqldump -u root -h 127.0.0.1 -p –flush-logs –master-data=2 –single-transaction –routines –triggers –events –all-databases > /root/slave11.sql
slave从数据库
创建方式与master方式类似
新增mysql配置文件mysql-slave.cnf
https://github.com/ppabc/lanmp-alpine/blob/master/mysql_slave/my.cnf
编写Dockerfile
https://github.com/ppabc/lanmp-alpine/blob/master/mysql_slave/Dockerfile
创建MYSQL slave容器
docker run –name mysql-master2 -p 3326:3306 -v /data2:/data -d ppabc/lanmp-alpine:slave
登陆到主数据库容器,查看master状态
docker exec -it mysql-master2 sh
master_user是在主库创建的用户
master_log_pos是主库show master status;查询出的Position
登陆从数据库,设置相关参数
SET sql_mode=(SELECT REPLACE(@@sql_mode,’ONLY_FULL_GROUP_BY’,”));
change master to master_host=’172.17.0.2′,master_user=’backup’,master_password=’mysql_master’,master_log_file=’mysql-bin.000005′,master_log_pos=515;
启动服务
start slave;
查看服务状态
show slave status;
显示
Waiting for master to send event
说明主从成功了。
docker镜像地址 https://hub.docker.com/r/ppabc/lanmp-alpine/
github地址 https://github.com/ppabc/lanmp-alpine