Docker学习(安装-卸载-Mysql集群-PXC框架)

环境

  • centos7

先要更新yum的所有包

yum -y update

用yum安装docker

yum install -y docker

启动docker

service docker start

停止docker

service docker stop

重启docker

service docker restart

寻找镜像

docker search java

拉取镜像

docker pull java

删除安装的docker

yum remove docker-*

启动docker

systemctl start docker

更改docker拉取的国内镜像

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

记得一定要更改这个json,后面有一个逗号

vi /etc/docker/daemon.json

查看本地所有容器

docker ps -a  

查看本地所有镜像

docker images

将docker的镜像存到虚拟机里面

docker save java > /home/java.tar.gz

将docker加载保存到本地的镜像

docker load < /home/java.tar.gz

docker停止容器

docker stop myjava

搭建Percona的集群

Percona Server由领先的MySQL咨询公司Percona发布。 Percona Server是一款独立的数据库产品,其可以完全与MySQL兼容,可以在不更改代码的情况了下将存储引擎更换成XtraDB 。

Percona团队的最终声明是“Percona Server是由Oracle发布的最接近官方MySQL Enterprise发行版的版本”,因此与其他更改了大量基本核心MySQL代码的分支有所区别。 Percona Server的一个缺点是他们自己管理代码,不接受外部开发人员的贡献,以这种方式确保他们对产品中所包含功能的控制。
Percona提供了高性能XtraDB引擎,还提供PXC高可用解决方案,并且附带了perconatoolkit等DBA管理工具箱

PXC-Mysql高可用

galera产品是以galera cluster方式为mysql提高高可用集群解决方案的。galera cluster就是集成了galera插件的mysql集群。galera replication是codership提供的mysql数据同步方案,具有高可用性,方便扩展,并且可以实现多个mysql节点间的数据同步复制与读写,可保障数据库的服务高可用及数据强一致性。

PXC属于一套近乎完美的mysql高可用集群解决方案,相比那些比较传统的基于主从复制模式的集群架构MHA和MM+keepalived,galera cluster最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步。而且节点与节点之间,他们相互的关系是对等的。本身galera cluster也是一种多主架构。galera cluster最关注的是数据的一致性,对待事物的行为时,要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证MySQL集群的数据一致性;

对galera cluster的封装有两个,虽然名称不同,但实质都是一样的,使用的都是galera cluster。一个MySQL的创始人在自己全新的MariaDB上实现的MAriaDB cluster;一个是著名的MySQL服务和工具提供商percona实现的percona xtradb cluster,简称PXC

要搭建PXC架构至少需要3个mysql实例来组成一个集群,三个实例之间不是主从模式,而是各自为主,所以三者是对等关系,不分从属,这就叫multi-master架构。客户端写入和读取数据时,连接哪个实例都是一样的。读取到的数据时相同的,写入任意一个实例之后,集群自己会将新写入的数据同步到其他实例上,这种架构不共享任何数据,是一种高冗余架构。

拉取docker对应的percona的镜像

docker pull percona/percona-xtradb-cluster

修改镜像的名字-这个镜像的名字太长了

docker tag docker.io/percona/percona-xtradb-cluster percona

对应的这个percona的镜像具体的地址

https://hub.docker.com/r/percona/percona-xtradb-cluster

创建docker的内部网络

docker network create net1

但是要想跑起来,这个必须使用subnet的地址,否则跑不起来

docker network create  --subnet=172.18.0.0/24 net1

查看刚刚创建的网络的具体信息

docker network inspect net1

删除创建的net网络信息

docker network rm net1

为具体的容器创建它所用的外部加载卷

docker volume create --name v1
docker volume create --name v2
docker volume create --name v3

查看刚刚加载卷的具体信息

docker inspect v1

删除加载卷

docker volume rm v1

-d后台运行;-p端口映射;-v加载卷映射;-e参数;–privileged最高权限;–name集群名字 --net使用的网段; -p设置的ip地址内部

docker run -d -p 3306:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged  --name=node1 --net=net1 --ip 172.18.0.2 percona

以上是第一台机器的运行,以下是随从的机器
多了一个CLUSTER_JOIN以哪个节点为同步数据的

docker run -d -p 3307:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged  --name=node2 --net=net1 --ip 172.18.0.3 percona

接下来使用数据库链接软件测试
在这里插入图片描述完美

以下是创建MySQL 8的PXC集群的步骤: 1.安装DockerDocker Compose 在安装Docker之前,需要先卸载旧版本的Docker。然后,按照相应的操作系统的指引安装最新版本的DockerDocker Compose。 2.创建Dockerfile 创建Dockerfile,以便Docker能够构建MySQL 8的PXC镜像。下面是一个示例Dockerfile: ``` FROM mysql:8.0 RUN apt-get update && apt-get install -y wget gnupg2 RUN wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb RUN dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb RUN apt-get update && apt-get install -y percona-xtradb-cluster-57 COPY my.cnf /etc/mysql/my.cnf CMD ["mysqld"] ``` 3.创建docker-compose.yml文件 在docker-compose.yml中定义PXC集群的服务。下面是一个示例docker-compose.yml文件: ``` version: '3' services: db1: image: mysql-pxc hostname: db1 ports: - "3306:3306" volumes: - /data/mysql/db1:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root - CLUSTER_NAME=mycluster - CLUSTER_JOIN=db1,db2,db3 db2: image: mysql-pxc hostname: db2 volumes: - /data/mysql/db2:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root - CLUSTER_NAME=mycluster - CLUSTER_JOIN=db1,db2,db3 db3: image: mysql-pxc hostname: db3 volumes: - /data/mysql/db3:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root - CLUSTER_NAME=mycluster - CLUSTER_JOIN=db1,db2,db3 ``` 4.构建和启动PXC集群 使用以下命令构建和启动PXC集群: ``` docker-compose up --build -d ``` 5.验证PXC集群 使用以下命令验证PXC集群是否正常工作: ``` docker exec -it pxc_db1 mysql -uroot -proot -e "SHOW STATUS LIKE 'wsrep_cluster_size'" ``` 如果输出结果是3,那么就表示PXC集群已经成功创建。 以上就是创建MySQL 8的PXC集群的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值