docker怎么搭建mysql集群-mile米乐体育
linux
2021年02月23日 07:37
1
这篇文章主要介绍了docker怎么搭建mysql集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
docker基本指令:
更新软件包
yum-yupdate
安装docker虚拟机(centos 7)
yuminstall-ydocker
运行、重启、关闭docker虚拟机
servicedockerstart servicedockerstop
搜索镜像
dockersearch镜像名称
下载镜像
dockerpull镜像名称
查看镜像
dockerimages
删除镜像
dockerrmi镜像名称
运行容器
dockerrun启动参数镜像名称
查看容器列表
dockerps-a
当我们想要使用java环境,我们可以这么操作:
搜索: [root@vm_71_225_centos~]#dockersearchjava indexnamedescriptionstarsofficialautomated docker.iodocker.io/nodenode.jsisajavascript-basedplatformfor...5752[ok] docker.iodocker.io/tomcatapachetomcatisanopensourceimplementa...1891[ok] docker.iodocker.io/javajavaisaconcurrent,class-based,andobj...1745[ok] docker.iodocker.io/openjdkopenjdkisanopen-sourceimplementationo...1031[ok]
下载: [root@vm_71_225_centos~]#dockerpulldocker.io/java usingdefaulttag:latest tryingtopullrepositorydocker.io/library/java... latest:pullingfromdocker.io/library/java 5040bd298390:downloading[=>]1.572mb/51.36mb
运行: [root@vm_71_225_centos~]#dockerrun-it--namemyjavadocker.io/javabash root@25623e12b759:/#java -i:以交互模式运行容器,通常与-t同时使用; -t:为容器重新分配一个伪输入终端,通常与-i同时使用;
安装pxc集群(在此不做mysql pxc集群与replication集群的方案优劣说明,在此选用pxc集群方案[多节点备份与强联合性]):
安装pxc镜像
dockerpullpercona/percona-xtradb-cluster
查看本地镜像
[root@vm_71_225_centos~]#dockerimages repositorytagimageidcreatedsize docker.io/hello-worldlateste38bc07ac18e2monthsago1.85kb docker.io/percona/percona-xtradb-clusterlatestf1439de620873monthsago413mb docker.io/javalatestd23bdf5b1b1b17monthsago643mb
docker.io/percona/percona-xtradb-cluster 太长,进行改名:
[root@vm_71_225_centos~]#dockertagpercona/percona-xtradb-clusterpxc [root@vm_71_225_centos~]#dockerimages repositorytagimageidcreatedsize docker.io/hello-worldlateste38bc07ac18e2monthsago1.85kb docker.io/percona/percona-xtradb-clusterlatestf1439de620873monthsago413mb pxclatestf1439de620873monthsago413mb docker.io/javalatestd23bdf5b1b1b17monthsago643mb
创建net1网段:
dockernetworkcreate--subnet=172.18.0.0/16net1
创建五个数据卷(pxc无法直接存取宿组机的数据,所以创建五个docker数据卷)
dockervolumecreatev1 dockervolumecreatev2 dockervolumecreatev3 dockervolumecreatev4 dockervolumecreatev5
查看数据卷位置:
[root@vm_71_225_centoscode]#dockerinspectv1 [ { "driver":"local", "labels":{}, "mountpoint":"/var/lib/docker/volumes/v1/_data", "name":"v1", "options":{}, "scope":"local" } ]
创建5节点的pxc集群
#创建第1个mysql节点 dockerrun-d-p3306:3306-emysql_root_password=abc123456-ecluster_name=pxc-extrabackup_password=abc123456-vv1:/var/lib/mysql-vbackup:/data--privileged--name=node1--net=net1--ip172.18.0.2pxc
等待2分钟后,再创建第二个节点,等待第一个节点实例化完毕后,才能开启第二个节点实例,不然会瞬间停止
创建其他节点:
#创建第2个mysql节点 dockerrun-d-p3307:3306-emysql_root_password=abc123456-ecluster_name=pxc-extrabackup_password=abc123456-ecluster_join=node1-vv2:/var/lib/mysql-vbackup:/data--privileged--name=node2--net=net1--ip172.18.0.3pxc #创建第3个mysql节点 dockerrun-d-p3308:3306-emysql_root_password=abc123456-ecluster_name=pxc-extrabackup_password=abc123456-ecluster_join=node1-vv3:/var/lib/mysql--privileged--name=node3--net=net1--ip172.18.0.4pxc #创建第4个mysql节点 dockerrun-d-p3309:3306-emysql_root_password=abc123456-ecluster_name=pxc-extrabackup_password=abc123456-ecluster_join=node1-vv4:/var/lib/mysql--privileged--name=node4--net=net1--ip172.18.0.5pxc #创建第5个mysql节点 dockerrun-d-p3310:3306-emysql_root_password=abc123456-ecluster_name=pxc-extrabackup_password=abc123456-ecluster_join=node1-vv5:/var/lib/mysql-vbackup:/data--privileged--name=node5--net=net1--ip172.18.0.6pxc
测试在任意mysql节点创建数据库:
mysql-h172.18.0.3-uroot-pabc123456 mysql>createdatabasetest; queryok,1rowaffected(0.03sec)
登录其他节点数据库,能看到已经进行了同步,构成简单的mysql集群
安装haproxy进行高可用与负载均衡
拉取haproxy
dockerpullhaproxy
编写haproxy配置文件
vi/home/soft/haproxy.cfg
配置文件如下:
global #工作目录 chroot/usr/local/etc/haproxy #日志文件,使用rsyslog服务中local5日志设备(/var/log/local5),等级info log127.0.0.1local5info #守护进程运行 daemon defaults logglobal modehttp #日志格式 optionhttplog #日志中不记录负载均衡的心跳检测记录 optiondontlognull #连接超时(毫秒) timeoutconnect5000 #客户端超时(毫秒) timeoutclient50000 #服务器超时(毫秒) timeoutserver50000 #监控界面 listenadmin_stats #监控界面的访问的ip和端口 bind0.0.0.0:8888 #访问协议 modehttp #uri相对地址 statsuri/dbs #统计报告格式 statsrealmglobal\statistics #登陆帐户信息 statsauthadmin:abc123456 #数据库负载均衡 listenproxy-mysql #访问的ip和端口 bind0.0.0.0:3306 #网络协议 modetcp #负载均衡算法(轮询算法) #轮询算法:roundrobin #权重算法:static-rr #最少连接算法:leastconn #请求源ip算法:source balanceroundrobin #日志格式 optiontcplog #在mysql中创建一个没有权限的haproxy用户,密码为空。haproxy使用这个账户对mysql数据库心跳检测 optionmysql-checkuserhaproxy servermysql_1172.18.0.2:3306checkweight1maxconn2000 servermysql_2172.18.0.3:3306checkweight1maxconn2000 servermysql_3172.18.0.4:3306checkweight1maxconn2000 servermysql_4172.18.0.5:3306checkweight1maxconn2000 servermysql_5172.18.0.6:3306checkweight1maxconn2000 #使用keepalive检测死链 optiontcpka
创建第1个haproxy负载均衡服务器
dockerrun-it-d-p4001:8888-p4002:3306-v/home/soft/haproxy:/usr/local/etc/haproxy--nameh2--privileged--net=net1--ip172.18.0.7haproxy
进入h2容器,启动haproxy
dockerexec-ith2bash haproxy-f/usr/local/etc/haproxy/haproxy.cfg
查看是否启动成功:
访问http://ip:4001/dbs
安装keepalive实现双击热备
感谢你能够认真阅读完这篇文章,希望小编分享的“docker怎么搭建mysql集群”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!
展开全文