docker实训

使⽤ docker 部署 project-exam-system
1. 背景,在⼀台主机之内,实现容器的编排,发布考试系统
2. 环境准备
1. docker
1. vim /etc/docker/daemon.json
2. docker-compos
3. 普通的部署
1. 镜像
1. 前端: nginx latest 服务
1. 拉取 nignx:latest 镜像
2. 测试
3. 上传前端项⽬ dist
4. 创建启动容器
5. 测试成功
6. 出现问题,在实现登录的时候,都实现后段异常,
原因后段还没后部署 7. 登录的时候请求的域名 bu.yuanyu.zhangmin, 我们是
hosts 域名劫持来实现
2. 后端的业务 jdk17 springboot 有点 不⽤单独部署
tomcat ,已经在 springboot 中内置 tomact
1. 准备拉取基础 centos 镜像
2. Docker run -it centos:latest /bin/bash
3. ctrl p q
4. jdk17 版本的⽂件
5. 项⽬资源 .war. .perpreties
6. 将在服务器上的 jaav 的资源⽂件上传到容器
1. 上传 jdk
2. 向容器上传为服务的项⽬⽂件
3. 向容器上传微服务的配置⽂件
4. 对已经传到容器的⽂件进⾏部署
5. 解压⽂件到指定的⽬录,并且跳过第⼀层⽬录
6. 测试启动微服务
7. 修改 appllcaiton.properties ⽂件
1. spring.datesource.url=jdbc:msyql:// 你的主机
ip:3306/project_exam_system
8. ctrl p q 退出
9. 根据容器创建镜像
10. 查看镜像
11. 停⽤原来的容器
3. 移除原来的容器
4. 根据新建的镜像,创建容器
14. docker ps 查看容器的进程
15. java 容器的终端附加到当前终端
16. 启动 springboot 微服务
17. 数据持久化业务 mysq 5.7.44
1. 拉取 mysql:5.7.44
docker pull mysql:5.7.44
2. 上传 mysql ⽂件
3. 执⾏ mysql ⽂件
mysql -uroot -proot <
project_exam_system.sql
4. 启动 mysql 容器,并且映射端⼝
docker run -itd -p3306:3306
mysql:5.7.44
5. 使⽤ exec 指令访问数据库管理界⾯
nmt
nginx
1. 下载镜像,启动镜像,将本地的 dist 项⽬的⽬录挂载在容器
/usr/share/nginx/html
2. 启动服务
3. 前后端分离的项⽬,并⾮所有的请求都是来⾃于同⼀个位置,
设置请求的时候还是需要在 hosts ⽂件中挟持域名
4. 域名是固定的,但是,域名可以绑定不同的 ip
mysql
1. 各个版本都有官⽅的镜像,直接下载 docker pull msyql:5.7.44
2. 启动容器的时候,挂载 data ⽬录,
3. 制作 data 的时候,顺⼿删除 auto.cnf
tomcat
制作 docker-compose.yml ⽂件,实现⼀键部署
步骤:
1. 启动 nginx
2. 启动 java 容器
3. 启动 mysql
配置⾼可⽤的项⽬
1. 先创建三个前段 nginx 容器
1. 端⼝不能映射 80
2. 现在在远程是⽆法访问 nginx 服务,⽽且现在也不希望外部
直接访问 nginx ,希望创建 nginx 服务的集群,这个集群被
haproxy 代理,创建三个 nginx 容器,创建⼀个 haproxy
务,⽽且 nginx 容器还需要指定名称, web0 web1 web2 因为
如果没有名称,那么容器就⽆法被 haproxy --link
3. 启动 haproxy 容器 hap0
1. 拉取 haproxy 镜像
2. 配置
mode http
# 负载均衡算法 # static-rr 权重 , leastconn 最少连
, source 请求 IP, 轮询 roundrobin
balance roundrobin
# ⽇志格式
option tcplog
# mysql 创建⼀个没有权限的 haproxy
⽤户,密码为空。 haproxy ⽤户
# create user 'haproxy'@'%'
identified by ''; FLUSH PRIVILEGES;
#option mysql-check user haproxy
# 这⾥是容器中的 IP 地址,由于配置的是
轮询 roundrobin weight 权重其实没有⽣效
server web0 10.1.1.10:80 check
weight 1 maxconn 2000
server web1 10.1.1.10:81 check
weight 1 maxconn 2000
server web2 10.1.1.10:82 check
weight 1 maxconn 2000
#server MYSQL_3
192.168.130.102:3306 check weight 1
maxconn 2000
# 使⽤ keepalive 检测死链
# option tcpka
########################################
1. 在宿主机上安装了 haproxy ,配置,代理三个的
nginx 容器中的 web 服务,也是直接添加容器的 ip
2. 创建⼀个 haproxy ,将配置⽂件导⼊到容器,在容器
中启动 haproxy ,也是可以的
3. 实际的使⽤ haproxy 容器,只需要将配置⽂件挂载到
指定的⽬录就可以
3. 启动
4. 代理 java 服务
5. ab 压⼒测试
yum provides *bin/ab
yum -y install httpd-tools
Docker-compose ⾃动化部
1. 安装 docker
source docker.sh
2. 安装 pip
yum -y install python2-pip
3. 升级 pip pip install --upgrade pip==20.3 -i
https://mirrors.aliyun.com/pypi/simple
4. 安装 docker-compose
pip install docker-compose -i
https://mirrors.aliyun.com/pypi/simple
5. 创建 pes ⽬录以及⼦⽬录
cd
mkdir -p pes/{msyql,java,web}
6. pes ⽬录下创建并且编辑 dockerr-compose.yml ⽂件
7. 添加 web 服务
8. docker-compose 启动集群 cd pes
docker-compose up -d
9. docker-compose 暂停集群
10. docker-compose 移除容器
11. docker-compose 多开容器
  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值