docker 常用命令
image导入导出
docker save java > /home/xinjie/java.tar.gz
docker load < /home/xinjie/java.tar.gz
集群方案
mysql 集群方案介绍,建议使用pxc,因为弱一致性会有问题,比如说a节点数据库显示我购买成功,b 节点数据库显示没有成功,这就麻烦了,pxc 方案是在全部节点都写入成功之后才会告诉你成功,是可读可写双向同步的,但是replication是单向的,不同节点的数据库之间都会开放端口进行通讯,如果从防火墙的这个端口关闭,pxc就不会同步成功,也不会返给你成功了。
20180712114503680.png
创建mysql集群
- docker的官方仓库下载pxc方案的镜像
docker pull percona/percona-xtradb-cluster
- 创建数据卷,容器中的数据不要放在容器中而是放在宿主机上,这样当容器出现问题的时候,可以删除容器,重新创建。
docker volume create v5
docker volume create v4
docker volume create v3
docker volume create v2
docker volume create v1
- 我们知道各节点之间在通讯的时候时候内部端口的,首先我们要创建内部网段,并且分配具体的ip。
docker network create --driver bridge --subnet 172.25.0.0/16 pxc_net
- 运行pxc镜像
docker run -d -p 3310:3306 --name=node5 -v v5:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xinjie -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 -e XTRABACKUP_PACSSWORD=xinjie --privileged --net=pxc_net --ip 172.25.0.6 pxc
docker run -d -p 3309:3306 --name=node4 -v v4:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xinjie -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 -e XTRABACKUP_PACSSWORD=xinjie --privileged --net=pxc_net --ip 172.25.0.5 pxc
docker run -d -p 3308:3306 --name=node3 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xinjie -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 -e XTRABACKUP_PACSSWORD=xinjie --privileged --net=pxc_net --ip 172.25.0.4 pxc
docker run -d -p 3307:3306 --name=node2 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xinjie -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 -e XTRABACKUP_PACSSWORD=xinjie --privileged --net=pxc_net --ip 172.25.0.3 pxc
docker run -d -p 3306:3306 --name=node1 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xinjie -e CLUSTER_NAME=PXC -e XTRABACKUP_PACSSWORD=xinjie --privileged --net=pxc_net --ip 172.25.0.2 pxc
- 现在就可以在连接宿主机的3306-3310端口。
网友评论