Docker的前后端分离人人网项目Demo1

Docker的前后端分离人人网项目Demo1_第1张图片
Docker的前后端分离人人网项目Demo1_第2张图片Docker的前后端分离人人网项目Demo1_第3张图片在这里插入图片描述Docker的前后端分离人人网项目Demo1_第4张图片
Docker的前后端分离人人网项目Demo1_第5张图片

下后端代码
Docker的前后端分离人人网项目Demo1_第6张图片
引入本地Windows测试运行Docker的前后端分离人人网项目Demo1_第7张图片
执行后段关于数据库建表sql

Docker的前后端分离人人网项目Demo1_第8张图片
Docker的前后端分离人人网项目Demo1_第9张图片
Docker的前后端分离人人网项目Demo1_第10张图片
Docker的前后端分离人人网项目Demo1_第11张图片
Docker的前后端分离人人网项目Demo1_第12张图片Docker的前后端分离人人网项目Demo1_第13张图片
Docker的前后端分离人人网项目Demo1_第14张图片
Docker的前后端分离人人网项目Demo1_第15张图片
Docker的前后端分离人人网项目Demo1_第16张图片
Docker的前后端分离人人网项目Demo1_第17张图片
Docker的前后端分离人人网项目Demo1_第18张图片
Docker的前后端分离人人网项目Demo1_第19张图片

Docker的前后端分离人人网项目Demo1_第20张图片
Docker的前后端分离人人网项目Demo1_第21张图片
Docker的前后端分离人人网项目Demo1_第22张图片
Docker的前后端分离人人网项目Demo1_第23张图片
Docker的前后端分离人人网项目Demo1_第24张图片
Docker的前后端分离人人网项目Demo1_第25张图片
Docker的前后端分离人人网项目Demo1_第26张图片
Docker的前后端分离人人网项目Demo1_第27张图片
打开一范围段的防火墙端口,而只关闭其中一个,会报错
Docker的前后端分离人人网项目Demo1_第28张图片
Docker的前后端分离人人网项目Demo1_第29张图片
Docker的前后端分离人人网项目Demo1_第30张图片
Docker的前后端分离人人网项目Demo1_第31张图片
Docker的前后端分离人人网项目Demo1_第32张图片
Docker的前后端分离人人网项目Demo1_第33张图片
Docker的前后端分离人人网项目Demo1_第34张图片
Docker的前后端分离人人网项目Demo1_第35张图片
Docker的前后端分离人人网项目Demo1_第36张图片
Docker的前后端分离人人网项目Demo1_第37张图片
Docker的前后端分离人人网项目Demo1_第38张图片
Docker的前后端分离人人网项目Demo1_第39张图片
Docker的前后端分离人人网项目Demo1_第40张图片
Docker的前后端分离人人网项目Demo1_第41张图片
Docker的前后端分离人人网项目Demo1_第42张图片
Docker的前后端分离人人网项目Demo1_第43张图片

Docker的前后端分离人人网项目Demo1_第44张图片
Docker的前后端分离人人网项目Demo1_第45张图片

之前蜗牛老梁讲的mysql mycat主从复制就是replication方案
Docker的前后端分离人人网项目Demo1_第46张图片
Docker的前后端分离人人网项目Demo1_第47张图片
PXC任何节点都可以读写,不分主从
Docker的前后端分离人人网项目Demo1_第48张图片
Docker的前后端分离人人网项目Demo1_第49张图片
Docker的前后端分离人人网项目Demo1_第50张图片
Docker的前后端分离人人网项目Demo1_第51张图片
Docker的前后端分离人人网项目Demo1_第52张图片
replication的弱一致性演示
2个库
Docker的前后端分离人人网项目Demo1_第53张图片
Docker的前后端分离人人网项目Demo1_第54张图片

停止从库

Docker的前后端分离人人网项目Demo1_第55张图片
Docker的前后端分离人人网项目Demo1_第56张图片
已停止
Docker的前后端分离人人网项目Demo1_第57张图片
Docker的前后端分离人人网项目Demo1_第58张图片
第一个库写入 成功,第二个库没有这个数据,证明了弱一致性
Docker的前后端分离人人网项目Demo1_第59张图片

PXC强一致性演示
3个库
Docker的前后端分离人人网项目Demo1_第60张图片

Docker的前后端分离人人网项目Demo1_第61张图片
Docker的前后端分离人人网项目Demo1_第62张图片
Docker的前后端分离人人网项目Demo1_第63张图片
关掉PXC其中一个db端口,进入到集群中一个节点容器里面通过它的防火墙,关闭它pxc同步的端口,需要封闭入站和出站两个端口。

Docker的前后端分离人人网项目Demo1_第64张图片
Docker的前后端分离人人网项目Demo1_第65张图片
Docker的前后端分离人人网项目Demo1_第66张图片
docker搭建mysql的pxc集群
在这里插入图片描述
pxc集群很特殊,只能安装在linux之上

Docker的前后端分离人人网项目Demo1_第67张图片
Docker的前后端分离人人网项目Demo1_第68张图片
Docker的前后端分离人人网项目Demo1_第69张图片

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

Docker的前后端分离人人网项目Demo1_第70张图片

重命名镜像,实际上是复制了一份
Docker的前后端分离人人网项目Demo1_第71张图片
删除旧名字镜像
在这里插入图片描述
现在要创建5个节点pxc集群就要创建5个pxc容器

创建出来的pxc容器不要直接对接docker以外的网络,不安全
要在docker内部给pxc划分一个网段,这个网段外部无法直接访问,向外部开放什么端口,用docker端口映射技术实现
Docker的前后端分离人人网项目Demo1_第72张图片
说明,创建内部网段指令是docker network create 网段名

那么这个网段ip是多少?docker虚拟机自带网段是172.17.0.xxx,这是内置的网段

创建第一个网段net1,网段默认ip就应该是172.18.0.xxx
在创建第二个net2,网段默认ip就应该是172.19.0.xxx
当然可以自己指定ip

docker network create --subnet=172.18.0.0/24 net1
Docker的前后端分离人人网项目Demo1_第73张图片
查看刚刚创建的net1
注意看Subnet
Docker的前后端分离人人网项目Demo1_第74张图片
创建出的docker容器要把数据保存到宿主机里面,所以就用容器卷,映射宿主机目录,

pxc集群在docker容器里面运行,无法直接使用映射目录,映射目录直接给到在pxc启动的容器,会闪退
就要用容器卷
Docker的前后端分离人人网项目Demo1_第75张图片
创建一个数据卷
然后再宿主机中查看
Docker的前后端分离人人网项目Demo1_第76张图片
可以删除
在这里插入图片描述
Docker的前后端分离人人网项目Demo1_第77张图片
-d表示后台运行(要进入容器是-it),-p 宿主机端口:容器端口

-v标示数据卷, v1 :容器里面的映射目录

-e 是参数,注意 XTRABACKUP_PASSWORD=abc123456

–privileged 是赋予最高权限

–net 是用那个网段

最后pxc就是从哪个容器克隆

CLUSTER_NAME名字就是PXC

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=pxc_node1 --net=net1 --ip 172.18.0.2 pxc
Docker的前后端分离人人网项目Demo1_第78张图片
加入第一个node1
Docker的前后端分离人人网项目Demo1_第79张图片
Docker的前后端分离人人网项目Demo1_第80张图片
Docker的前后端分离人人网项目Demo1_第81张图片
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=pxc_node1 --privileged --name=pxc_node2 --net=net1 --ip 172.18.0.3 pxc

docker run -d -p 3308:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=pxc_node1 --privileged --name=pxc_node3 --net=net1 --ip 172.18.0.4 pxc

docker run -d -p 3309:3306 -v v4:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=pxc_node1 --privileged --name=pxc_node4 --net=net1 --ip 172.18.0.5 pxc

docker run -d -p 3310:3306 -v v5:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=pxc_node1 --privileged --name=pxc_node5 --net=net1 --ip 172.18.0.6 pxc

Docker的前后端分离人人网项目Demo1_第82张图片
注意!!!启动第一个后要耐心等个2分钟以上,不然后面的集群节点可能接不上,会闪退(通过navicat连接测试)
在这里插入图片描述
在这里插入图片描述
Docker的前后端分离人人网项目Demo1_第83张图片
就可以创建第二个容器节点了
在这里插入图片描述
第二个容器节点初始化就很快了,然后再用navicat测试连接,只有第一个最慢

注意重启vm、重启docker服务,再次重启pxc容器会闪退,出现抱错
Docker的前后端分离人人网项目Demo1_第84张图片
就要去宿主机中搜索文件grastate.dat

find / -name grastate.dat
Docker的前后端分离人人网项目Demo1_第85张图片
需要修改grastate.dat文件将safe_to_bootstrap的值置为1
在这里插入图片描述
Docker的前后端分离人人网项目Demo1_第86张图片
Docker的前后端分离人人网项目Demo1_第87张图片
Docker的前后端分离人人网项目Demo1_第88张图片
Docker的前后端分离人人网项目Demo1_第89张图片

要在后面页面看到正常提供服务的数据库

注意先关防火墙

注意先关防火墙

注意先关防火墙

Docker的前后端分离人人网项目Demo1_第90张图片
在这里插入图片描述
Docker的前后端分离人人网项目Demo1_第91张图片
Docker的前后端分离人人网项目Demo1_第92张图片Docker的前后端分离人人网项目Demo1_第93张图片
0.0.0.0:3306 表示任何IP都可以访问这个3306端口
Docker的前后端分离人人网项目Demo1_第94张图片

注意下面3306都是容器的端口而不是宿主机的端口
Docker的前后端分离人人网项目Demo1_第95张图片
Docker的前后端分离人人网项目Demo1_第96张图片

docker run -it -d -p 4001:8888 -p 4002:3306 -v /home/soft/haproxy:/usr/local/etc/haproxy --name haproxy1 --privileged --net=net1 --ip 172.18.0.7 haproxy
Docker的前后端分离人人网项目Demo1_第97张图片
Docker的前后端分离人人网项目Demo1_第98张图片
Docker的前后端分离人人网项目Demo1_第99张图片
设置一个haproxy对于所负责负载均衡的数据库实例心跳检查的登陆账号

create user ‘haproxy’@’%’ IDENTIFIED BY ‘’
%表示任何ip都能以该账号登陆到mysql数据库,密码为空

Docker的前后端分离人人网项目Demo1_第100张图片

宿主机ip:4001/dbs
在这里插入图片描述
成功进入控制监视界面
Docker的前后端分离人人网项目Demo1_第101张图片
down掉其中一个db节点
Docker的前后端分离人人网项目Demo1_第102张图片
监视器中就显红了

用navicate连接这个haproxy,以后就只通过这个负载均衡器往数据库里面读写了

Docker的前后端分离人人网项目Demo1_第103张图片
Docker的前后端分离人人网项目Demo1_第104张图片
Docker的前后端分离人人网项目Demo1_第105张图片
Docker的前后端分离人人网项目Demo1_第106张图片
Docker的前后端分离人人网项目Demo1_第107张图片
Docker的前后端分离人人网项目Demo1_第108张图片
Docker的前后端分离人人网项目Demo1_第109张图片
Docker的前后端分离人人网项目Demo1_第110张图片
在这里插入图片描述

在haproxy容器中安装keepalived

容器中的linux系统是ubantu所以安装软件指令不一样
Docker的前后端分离人人网项目Demo1_第111张图片

Docker的前后端分离人人网项目Demo1_第112张图片

apt-get update加速
重要 - 设置ubuntu apt-get 源(ubuntu官方跟阿里云的)
sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
apt-get clean
然后

apt-get update
apt-get upgrade

在这里插入图片描述
Docker的前后端分离人人网项目Demo1_第113张图片

apt-get install vim

vim /etc/keepalived/keepalived.conf

Docker的前后端分离人人网项目Demo1_第114张图片
在这里插入图片描述
Docker的前后端分离人人网项目Demo1_第115张图片

Docker的前后端分离人人网项目Demo1_第116张图片

在这里插入图片描述
!在这里插入图片描述
Docker的前后端分离人人网项目Demo1_第117张图片
在这里插入图片描述

Docker的前后端分离人人网项目Demo1_第118张图片
Docker的前后端分离人人网项目Demo1_第119张图片
后面没了????
引用完整参考如下
https://blog.csdn.net/qq_21108311/article/details/82973763
Docker的前后端分离人人网项目Demo1_第120张图片
Docker的前后端分离人人网项目Demo1_第121张图片
Docker的前后端分离人人网项目Demo1_第122张图片
xtrabackup不需要锁表就备份数据了,LVM要锁表

Docker的前后端分离人人网项目Demo1_第123张图片
Docker的前后端分离人人网项目Demo1_第124张图片
在这里插入图片描述
往往第一次是全量备份,第二次是增量
Docker的前后端分离人人网项目Demo1_第125张图片
Docker的前后端分离人人网项目Demo1_第126张图片
在容器中备份的数据一定要通过docker数据卷持久化到宿主机

Docker的前后端分离人人网项目Demo1_第127张图片

Docker的前后端分离人人网项目Demo1_第128张图片

Docker的前后端分离人人网项目Demo1_第129张图片
Docker的前后端分离人人网项目Demo1_第130张图片
Docker的前后端分离人人网项目Demo1_第131张图片
Docker的前后端分离人人网项目Demo1_第132张图片
Docker的前后端分离人人网项目Demo1_第133张图片
Docker的前后端分离人人网项目Demo1_第134张图片

Docker的前后端分离人人网项目Demo1_第135张图片
Docker的前后端分离人人网项目Demo1_第136张图片
Docker的前后端分离人人网项目Demo1_第137张图片
在这里插入图片描述
Docker的前后端分离人人网项目Demo1_第138张图片
Docker的前后端分离人人网项目Demo1_第139张图片
在student表中新增一个记录d,等会看还原后是否只有三条记录
Docker的前后端分离人人网项目Demo1_第140张图片
还原指令
Docker的前后端分离人人网项目Demo1_第141张图片
启动一个node1然后冷还原

Docker的前后端分离人人网项目Demo1_第142张图片

Docker的前后端分离人人网项目Demo1_第143张图片
执行冷还原
Docker的前后端分离人人网项目Demo1_第144张图片
Docker的前后端分离人人网项目Demo1_第145张图片
Docker的前后端分离人人网项目Demo1_第146张图片
Docker的前后端分离人人网项目Demo1_第147张图片

你可能感兴趣的:(进阶学习#项目部署)