這篇文章主要介紹了docker怎么搭建MySQL集群,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括廣西網(wǎng)站建設(shè)、廣西網(wǎng)站制作、廣西網(wǎng)頁制作以及廣西網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,廣西網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到廣西省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
docker基本指令:
更新軟件包
yum -y update
安裝Docker虛擬機(jī)(centos 7)
yum install -y docker
運(yùn)行、重啟、關(guān)閉Docker虛擬機(jī)
service docker start service docker stop
搜索鏡像
docker search 鏡像名稱
下載鏡像
docker pull 鏡像名稱
查看鏡像
docker images
刪除鏡像
docker rmi 鏡像名稱
運(yùn)行容器
docker run 啟動(dòng)參數(shù) 鏡像名稱
查看容器列表
docker ps -a
當(dāng)我們想要使用java環(huán)境,我們可以這么操作:
搜索: [root@VM_71_225_centos ~]# docker search java INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/node Node.js is a JavaScript-based platform for... 5752 [OK] docker.io docker.io/tomcat Apache Tomcat is an open source implementa... 1891 [OK] docker.io docker.io/java Java is a concurrent, class-based, and obj... 1745 [OK] docker.io docker.io/openjdk OpenJDK is an open-source implementation o... 1031 [OK]
下載: [root@VM_71_225_centos ~]# docker pull docker.io/java Using default tag: latest Trying to pull repository docker.io/library/java ... latest: Pulling from docker.io/library/java 5040bd298390: Downloading [=> ] 1.572 MB/51.36 MB
運(yùn)行: [root@VM_71_225_centos ~]# docker run -it --name myjava docker.io/java bash root@25623e12b759:/# java -i: 以交互模式運(yùn)行容器,通常與 -t 同時(shí)使用; -t: 為容器重新分配一個(gè)偽輸入終端,通常與 -i 同時(shí)使用;
安裝PXC集群(在此不做mysql pxc集群與replication集群的方案優(yōu)劣說明,在此選用pxc集群方案[多節(jié)點(diǎn)備份與強(qiáng)聯(lián)合性]):
安裝PXC鏡像
docker pull percona/percona-xtradb-cluster
查看本地鏡像
[root@VM_71_225_centos ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/hello-world latest e38bc07ac18e 2 months ago 1.85 kB docker.io/percona/percona-xtradb-cluster latest f1439de62087 3 months ago 413 MB docker.io/java latest d23bdf5b1b1b 17 months ago 643 MB
docker.io/percona/percona-xtradb-cluster 太長,進(jìn)行改名:
[root@VM_71_225_centos ~]# docker tag percona/percona-xtradb-cluster pxc [root@VM_71_225_centos ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/hello-world latest e38bc07ac18e 2 months ago 1.85 kB docker.io/percona/percona-xtradb-cluster latest f1439de62087 3 months ago 413 MB pxc latest f1439de62087 3 months ago 413 MB docker.io/java latest d23bdf5b1b1b 17 months ago 643 MB
創(chuàng)建net1網(wǎng)段:
docker network create --subnet=172.18.0.0/16 net1
創(chuàng)建五個(gè)數(shù)據(jù)卷(pxc無法直接存取宿組機(jī)的數(shù)據(jù),所以創(chuàng)建五個(gè)docker數(shù)據(jù)卷)
docker volume create v1 docker volume create v2 docker volume create v3 docker volume create v4 docker volume create v5
查看數(shù)據(jù)卷位置:
[root@VM_71_225_centos code]# docker inspect v1 [ { "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/v1/_data", "Name": "v1", "Options": {}, "Scope": "local" } ]
創(chuàng)建5節(jié)點(diǎn)的PXC集群
#創(chuàng)建第1個(gè)MySQL節(jié)點(diǎn) 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分鐘后,再創(chuàng)建第二個(gè)節(jié)點(diǎn),等待第一個(gè)節(jié)點(diǎn)實(shí)例化完畢后,才能開啟第二個(gè)節(jié)點(diǎn)實(shí)例,不然會(huì)瞬間停止
創(chuàng)建其他節(jié)點(diǎn):
#創(chuàng)建第2個(gè)MySQL節(jié)點(diǎn) 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 #創(chuàng)建第3個(gè)MySQL節(jié)點(diǎn) 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 #創(chuàng)建第4個(gè)MySQL節(jié)點(diǎn) 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 #創(chuàng)建第5個(gè)MySQL節(jié)點(diǎn) 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
測(cè)試在任意mysql節(jié)點(diǎn)創(chuàng)建數(shù)據(jù)庫:
mysql -h 172.18.0.3 -uroot -pabc123456 mysql> create database test; Query OK, 1 row affected (0.03 sec)
登錄其他節(jié)點(diǎn)數(shù)據(jù)庫,能看到已經(jīng)進(jìn)行了同步,構(gòu)成簡(jiǎn)單的mysql集群
安裝Haproxy進(jìn)行高可用與負(fù)載均衡
拉取haproxy
docker pull haproxy
編寫Haproxy配置文件
vi /home/soft/haproxy.cfg
配置文件如下:
global #工作目錄 chroot /usr/local/etc/haproxy #日志文件,使用rsyslog服務(wù)中l(wèi)ocal5日志設(shè)備(/var/log/local5),等級(jí)info log 127.0.0.1 local5 info #守護(hù)進(jìn)程運(yùn)行 daemon defaults log global mode http #日志格式 option httplog #日志中不記錄負(fù)載均衡的心跳檢測(cè)記錄 option dontlognull #連接超時(shí)(毫秒) timeout connect 5000 #客戶端超時(shí)(毫秒) timeout client 50000 #服務(wù)器超時(shí)(毫秒) timeout server 50000 #監(jiān)控界面 listen admin_stats #監(jiān)控界面的訪問的IP和端口 bind 0.0.0.0:8888 #訪問協(xié)議 mode http #URI相對(duì)地址 stats uri /dbs #統(tǒng)計(jì)報(bào)告格式 stats realm Global\ statistics #登陸帳戶信息 stats auth admin:abc123456 #數(shù)據(jù)庫負(fù)載均衡 listen proxy-mysql #訪問的IP和端口 bind 0.0.0.0:3306 #網(wǎng)絡(luò)協(xié)議 mode tcp #負(fù)載均衡算法(輪詢算法) #輪詢算法:roundrobin #權(quán)重算法:static-rr #最少連接算法:leastconn #請(qǐng)求源IP算法:source balance roundrobin #日志格式 option tcplog #在MySQL中創(chuàng)建一個(gè)沒有權(quán)限的haproxy用戶,密碼為空。Haproxy使用這個(gè)賬戶對(duì)MySQL數(shù)據(jù)庫心跳檢測(cè) option mysql-check user haproxy server MySQL_1 172.18.0.2:3306 check weight 1 maxconn 2000 server MySQL_2 172.18.0.3:3306 check weight 1 maxconn 2000 server MySQL_3 172.18.0.4:3306 check weight 1 maxconn 2000 server MySQL_4 172.18.0.5:3306 check weight 1 maxconn 2000 server MySQL_5 172.18.0.6:3306 check weight 1 maxconn 2000 #使用keepalive檢測(cè)死鏈 option tcpka
創(chuàng)建第1個(gè)Haproxy負(fù)載均衡服務(wù)器
docker run -it -d -p 4001:8888 -p 4002:3306 -v /home/soft/haproxy:/usr/local/etc/haproxy --name h2 --privileged --net=net1 --ip 172.18.0.7 haproxy
進(jìn)入h2容器,啟動(dòng)Haproxy
docker exec -it h2 bash haproxy -f /usr/local/etc/haproxy/haproxy.cfg
查看是否啟動(dòng)成功:
訪問http://ip:4001/dbs
安裝keepalive實(shí)現(xiàn)雙擊熱備
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“docker怎么搭建Mysql集群”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
當(dāng)前文章:docker怎么搭建Mysql集群
分享地址:http://muchs.cn/article12/piscdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、面包屑導(dǎo)航、靜態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)