这篇文章主要介绍了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集群”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!
海报
0 条评论
165
相关文章
- jenkins(docker 最佳实践 小团队devops如何落地)
- Zend Studio使用教程:在Docker容器中调试PHP Web应用(三)
- 「docker+gdb」调试 PHP 源码,看 strva
- 使用laradock创建laravel本地开发环境
- Docker PHP 入门实践(一)
- docker配置PHP本地开发环境「php+nginx+mysql」
- 如何在CentOS 7上安装和使用Docker Compose
- docker中运行php文件
- 用 Laradock搭建本地 PHP 容器开发环境&宝塔Docker一键部署
- 从零开始学习Docker- PHP环境搭建(Windows环境)
本站已关闭游客评论,请登录或者注册后再评论吧~