docker 搭建Mysql集群的方法示例,Mysql集群的搭建实例教程

docker基本指令:
更新软件包
yum -y update安装Docker虚拟机(centos 7)
yum install -y docker运行、重启、关闭Docker虚拟机
service docker startservice docker stop搜索镜像
docker search 镜像名称下载镜像
docker pull 镜像名称查看镜像
docker images删除镜像
docker rmi 镜像名称运行容器
docker run 启动参数 镜像名称查看容器列表
docker ps -a当我们想要使用java环境,我们可以这么操作:
搜索:[root@VM_71_225_centos ~]# docker search javaINDEXNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDdocker.iodocker.io/nodeNode.js is a JavaScript-based platform for...5752[OK]docker.iodocker.io/tomcatApache Tomcat is an open source implementa...1891[OK]docker.iodocker.io/javaJava is a concurrent, class-based, and obj...1745[OK]docker.iodocker.io/openjdkOpenJDK is an open-source implementation o...1031[OK]下载:[root@VM_71_225_centos ~]# docker pull docker.io/javaUsing default tag: latestTrying to pull repository docker.io/library/java ...latest: Pulling from docker.io/library/java5040bd298390: Downloading [=>] 1.572 MB/51.36 MB运行:[root@VM_71_225_centos ~]# docker run -it --name myjava docker.io/java bashroot@25623e12b759:/# java-i: 以交互模式运行容器,通常与 -t 同时使用;-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;安装PXC集群(在此不做mysql pxc集群与replication集群的方案优劣说明,在此选用pxc集群方案[多节点备份与强联合性]):
安装PXC镜像
docker pull percona/percona-xtradb-cluster查看本地镜像
[root@VM_71_225_centos ~]# docker imagesREPOSITORYTAGIMAGE IDCREATEDSIZEdocker.io/hello-worldlateste38bc07ac18e2 months ago1.85 kBdocker.io/percona/percona-xtradb-clusterlatestf1439de620873 months ago413 MBdocker.io/javalatestd23bdf5b1b1b17 months ago643 MBdocker.io/percona/percona-xtradb-cluster 太长,进行改名:
[root@VM_71_225_centos ~]# docker tag percona/percona-xtradb-cluster pxc[root@VM_71_225_centos ~]# docker imagesREPOSITORYTAGIMAGE IDCREATEDSIZEdocker.io/hello-worldlateste38bc07ac18e2 months ago1.85 kBdocker.io/percona/percona-xtradb-clusterlatestf1439de620873 months ago413 MBpxclatestf1439de620873 months ago413 MBdocker.io/javalatestd23bdf5b1b1b17 months ago643 MB创建net1网段:
docker network create --subnet=172.18.0.0/16 net1创建五个数据卷(pxc无法直接存取宿组机的数据,所以创建五个docker数据卷)
docker volume create v1docker volume create v2docker volume create v3docker volume create v4docker volume create v5查看数据卷位置:
[root@VM_71_225_centos code]# docker inspect v1[{"Driver": "local","Labels": {},"Mountpoint": "/var/lib/docker/volumes/v1/_data","Name": "v1","Options": {},"Scope": "local"}]创建5节点的PXC集群
【docker 搭建Mysql集群的方法示例,Mysql集群的搭建实例教程】#创建第1个MySQL节点docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v1:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=net1 --ip 172.18.0.2 pxc等待2分钟后,再创建第二个节点,等待第一个节点实例化完毕后,才能开启第二个节点实例,不然会瞬间停止
创建其他节点:
#创建第2个MySQL节点docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v2:/var/lib/mysql -v backup:/data --privileged --name=node2 --net=net1 --ip 172.18.0.3 pxc#创建第3个MySQL节点docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v3:/var/lib/mysql --privileged --name=node3 --net=net1 --ip 172.18.0.4 pxc#创建第4个MySQL节点docker run -d -p 3309:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v4:/var/lib/mysql --privileged --name=node4 --net=net1 --ip 172.18.0.5 pxc#创建第5个MySQL节点docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v5:/var/lib/mysql -v backup:/data --privileged --name=node5 --net=net1 --ip 172.18.0.6 pxc

推荐阅读