《Docker环境下的前后端分离部署与运维》课程脚本《Docker环境下的前后端分离部署与运维》课程脚本
1. 先更新软件包
yum -y update
2. 安装Docker虚拟机
yum install -y docker
3. 运⾏、重启、关闭Docker虚拟机
service docker start
service docker start
service docker stop
4. 搜索镜像
docker search 镜像名称
5. 下载镜像
docker pull 镜像名称
6. 查看镜像
docker images
7. 删除镜像
docker rmi 镜像名称
8. 运⾏容器
docker run 启动参数镜像名称
9. 查看容器列表
docker ps -a
10. 停⽌、挂起、恢复容器
docker stop 容器ID
docker pause 容器ID
docker unpase 容器ID
11. 查看容器信息
docker inspect 容器ID
12. 删除容器
docker rm容器ID
13. 数据卷管理
docker volume create 数据卷名称#创建数据卷
docker volume rm数据卷名称#删除数据卷
docker volume inspect 数据卷名称#查看数据卷
14. ⽹络管理
docker network ls查看⽹络信息
docker network create --subnet=⽹段⽹络名称
docker network rm⽹络名称
15. 避免VM虚拟机挂起恢复之后,Docker虚拟机断⽹
vi /f
⽂件中添加net.ipv4.ip_forward=1这个配置
shell #重启⽹络服务 systemctl restart network
安装PXC集,负载均衡,双机热备
1. 安装PXC镜像
docker pull percona/percona-xtradb-cluster
2. 为PXC镜像改名
docker tag percona/percona-xtradb-cluster pxc
3. 创建net1⽹段
docker network create --subnet=172.18.0.0/16 net1
4. 创建5个数据卷
docker volume create --name v1
docker volume create --name v2
docker volume create --name v3
docker volume create --name v4
docker volume create --name v5
5. 创建备份数据卷(⽤于热备份数据)
docker volume create --name backup
6. 创建5节点的PXC集
注意,每个MySQL容器创建之后,因为要执⾏PXC的初始化和加⼊集等⼯作,耐⼼等待1分钟左右再⽤客户端连接MySQL。另外,必须第1个MySQL节点启动成功,⽤MySQL客户端能连接上之后,再去创建其他MySQL节点。
#创建第1个MySQL节点
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v 1:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=net1 --ip 172.18.0.2 pxc
#创建第2个MySQL节点
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e
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
#创建第3个MySQL节点
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
#创建第4个MySQL节点
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
#创建第5个MySQL节点
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
7. 安装Haproxy镜像
docker pull haproxy
8. 宿主机上编写Haproxy配置⽂件
vi /home/soft/haproxy.cfg
配置⽂件如下:
global
#⼯作⽬录
chroot /usr/local/etc/haproxy
#⽇志⽂件,使⽤rsyslog服务中local5⽇志设备(/var/log/local5),等级info
log 127.0.0.1 local5 info
#守护进程运⾏
daemon
defaults
log global
mode http
#⽇志格式
option httplog
#⽇志中不记录负载均衡的⼼跳检测记录
option dontlognull
#连接超时(毫秒)
timeout connect 5000
#客户端超时(毫秒)
timeout client 50000
#服务器超时(毫秒)
timeout server 50000
#监控界⾯
listen admin_stats
#监控界⾯的访问的IP和端⼝
mysql下载jar包bind 0.0.0.0:8888
#访问协议
mode http
#URI相对地址
stats uri /dbs
#统计报告格式
stats realm Global\ statistics
#登陆帐户信息
stats auth admin:abc123456
#数据库负载均衡
listen proxy-mysql
#访问的IP和端⼝
bind 0.0.0.0:3306
#⽹络协议
mode tcp
#负载均衡算法(轮询算法)
#轮询算法:roundrobin
#权重算法:static-rr
#最少连接算法:leastconn
#最少连接算法:leastconn
#请求源IP算法:source
balance roundrobin
#⽇志格式
option tcplog
#在MySQL中创建⼀个没有权限的haproxy⽤户,密码为空。Haproxy使⽤这个账户对MySQL数据库⼼跳检测
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检测死链
option tcpka
9. 创建两个Haproxy容器
#创建第1个Haproxy负载均衡服务器
docker run -it -d -p 4001:8888 -p 4002:3306 -v /home/soft/haproxy:/usr/local/etc/haproxy --name h1 --privileged --net=net1 --ip 172.18.0.7 haproxy #进⼊h1容器,启动Haproxy
docker exec -it h1 bash
haproxy -f /usr/local/etc/haproxy/haproxy.cfg
#创建第2个Haproxy负载均衡服务器
docker run -it -d -p 4003:8888 -p 4004:3306 -v /home/soft/haproxy:/usr/local/etc/haproxy --name h2 --privileged --net=net1 --ip 172.18.0.8 haproxy #进⼊h2容器,启动Haproxy
docker exec -it h2 bash
haproxy -f /usr/local/etc/haproxy/haproxy.cfg
10. Haproxy容器内安装Keepalived,设置虚拟IP
#进⼊h1容器
docker exec -it h1 bash
#更新软件包
apt-get update
#安装VIM
apt-get install vim
#安装Keepalived
apt-get install keepalived
#编辑Keepalived配置⽂件(参考下⽅配置⽂件)
vim /etc/f
#启动Keepalived
service keepalived start
#宿主机执⾏ping命令
ping 172.18.0.201
配置⽂件内容如下:
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
172.18.0.201
}
}
#进⼊h2容器
docker exec -it h2 bash
#更新软件包
apt-get update
apt-get update
#安装VIM
apt-get install vim
#安装Keepalived
apt-get install keepalived
#编辑Keepalived配置⽂件
vim /etc/f
#启动Keepalived
service keepalived start
#宿主机执⾏ping命令
ping 172.18.0.201
配置⽂件内容如下:
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
172.18.0.201
}
}
11. 宿主机安装Keepalived,实现双击热备
#宿主机执⾏安装Keepalived
yum -y install keepalived
#修改Keepalived配置⽂件
vi /etc/f
#启动Keepalived
service keepalived start
Keepalived配置⽂件如下:
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.99.150
}
}
virtual_server 192.168.99.150 8888 {
delay_loop 3
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 172.18.0.201 8888 {
weight 1
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论