docker 常用命令

image導(dǎo)入導(dǎo)出
docker save java > /home/xinjie/java.tar.gz
docker load < /home/xinjie/java.tar.gz
集群方案
mysql 集群方案介紹,建議使用pxc,因?yàn)槿跻恢滦詴?huì)有問題,比如說a節(jié)點(diǎn)數(shù)據(jù)庫顯示我購買成功,b 節(jié)點(diǎn)數(shù)據(jù)庫顯示沒有成功,這就麻煩了,pxc 方案是在全部節(jié)點(diǎn)都寫入成功之后才會(huì)告訴你成功,是可讀可寫雙向同步的,但是replication是單向的,不同節(jié)點(diǎn)的數(shù)據(jù)庫之間都會(huì)開放端口進(jìn)行通訊,如果從防火墻的這個(gè)端口關(guān)閉,pxc就不會(huì)同步成功,也不會(huì)返給你成功了。
20180712114503680.png
創(chuàng)建mysql集群
- docker的官方倉庫下載pxc方案的鏡像
docker pull percona/percona-xtradb-cluster
- 創(chuàng)建數(shù)據(jù)卷,容器中的數(shù)據(jù)不要放在容器中而是放在宿主機(jī)上,這樣當(dāng)容器出現(xiàn)問題的時(shí)候,可以刪除容器,重新創(chuàng)建。
docker volume create v5
docker volume create v4
docker volume create v3
docker volume create v2
docker volume create v1
- 我們知道各節(jié)點(diǎn)之間在通訊的時(shí)候時(shí)候內(nèi)部端口的,首先我們要?jiǎng)?chuàng)建內(nèi)部網(wǎng)段,并且分配具體的ip。
docker network create --driver bridge --subnet 172.25.0.0/16 pxc_net
- 運(yùn)行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
- 現(xiàn)在就可以在連接宿主機(jī)的3306-3310端口。
