docker简易搭建MySQL集群

Posted 一个名为osir的IT民工

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker简易搭建MySQL集群相关的知识,希望对你有一定的参考价值。

docker 简易搭建mysql集群


一、安装PXC集群

1,docker pull percona/percona-xtradb-cluster:5.7.20

2,docker images //查看是否成功

二、重命名images

1,docker tag percona/percona-xtradb-cluster:5.7.20 pxc

2,docker images

3,docker rmi percona/percona-xtradb-cluster:5.7.20 

//删除之前images

三、创建内部网络

说明:出于安全考虑,将PXC集群放置于docker内部网络中。

只需将宿主的端口与之映射并开放出来即可。

1,docker network create --subnet=172.18.0.0/24 net1

2,docker inspect net1  //查看net1详细信息

四、创建docker卷

docker容器的运行规则:通过目录映射的方法,将业务数据写入到宿主机中。好处是如果容器故障,只需将容器删除,重新启用一个容器即可,这样就不会丢失原来的数据。由于PXC较为特殊,无法直接使用映射目录的方法做映射(使用后会闪退),故使用docker卷。

1,docker volume create --name v1

3,docker volume create --name v2  v3 v4 ... 

//不同容器使用不同docker卷

五、创建PXC容器

1,docker run -d -p 3306:3306 -v v1:/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=123456 \

-e CLUSTER_NAME=PXC \

-e XTRABACKUP_PASSWORD=123456 \

--privileged \

--name=node1 \

--net=net1 \

--ip 172.18.0.2 \

pxc


说明:

-d  默认在后台运行

-p  3306(宿主):3306(容器)   端口映射,将容器3306端口映射到宿主3306端口

-v  目录映射,将第四步创建的v1映射到容器/var/lib/mysql

-e MYSQL_ROOT_PASSROWD  创建的用户实例的密码,默认实例root

-e CLUSTER_NAME  集群名称

-e XTRABACKUP_PASSWORD  数据库之间同步使用的密码

--privileged  权限.给予最高权限

--name 给容器容命名

--net 使用内部网段

pxc 指的是镜像

2,创建其他容器(依次创建)

docker run -d -p 3307:3306 -v v2:/var/lib/mysql 

-e MYSQL_ROOT_PASSWORD=123456 

-e CLUSTER_NAME=PXC 

-e XTRABACKUP_PASSWORD=123456 

-e CLUSTER_JOIN=node1 

--privileged 

--name=node2 

--net=net1 

--ip 172.18.0.3 

pxc

六、验证是否创建成功PCX集群

冬天的秘密 From 一个名为osir的IT民工 03:01

以上是关于docker简易搭建MySQL集群的主要内容,如果未能解决你的问题,请参考以下文章

Docker搭建Mysql集群

云原生时代必须具备的核心技能之Docker高级篇(Docker实战之MySQL高可用集群搭建)

docker搭建集群mysql

docker应用-6(mysql+mycat 搭建数据库集群)

Docker搭建mysql集群

Docker搭建MySQL主从集群,基于GTID