使⽤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. 停⽤原来的容器
12. 移除原来的容器
docker rm 28b9
13. 根据新建的镜像,创建容器
docker run -itd -p8080:8080 java:v0
14. docker ps查看容器的进程
15. 将java容器的终端附加到当前终端
16. 启动springboot微服务
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
1. 被war包集成,所以我们直接启动war
2. springboot 可以直接集成tomcat,build⼀个jar v包或者 是war
3. 我们没有安装tomcat
4. application.properties
1. 可以配置端⼝ 2. 配置数据库的访问
5. 使⽤/usr/local/jdk/bin/java -jar Project_ExamSystem-V1.0.0.war启动,但是在启动这个任务⼀ 定要跳转到⽂件所在⽬录,因为在启动的同时,还需要加载 applicaiton.properrties
6. Dockerfile创建镜像,如果对象的主机上没有对应镜像,我们 希望使⽤⼀个⽂件创建项⽬,就需要使⽤到Dockerfile,使⽤ docker build,也需要在Dockerfile所在⽬录中执⾏docker build,否则找到Dockerfile也是⽆法创建制作docker-compose.yml⽂件,实现⼀键部署