Docker Compose通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。
一、准备资源
1.mysql:
educate.sql
2.服务端:

上传打包好的jar包和编写好的dockerfile文件
这里Dockerfile的编写我使用的是open jdk:11.0-jre-buster,直接通过docker拉取镜像,不用自己手动进行jre的环境配置,节省了很多繁琐的步骤。
Dockerfile
# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY eduacate-service.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]
3.前端:

前端项目打包文件放到html中
nginx.conf配置文件
二、准备docker-compose.yml配置文件
version: "3.8"
services:
mysql:
image: mysql
container_name: mysql
ports:
- "3306:3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123
volumes:
- "./mysql/conf:/etc/mysql/conf.d"
- "./mysql/data:/var/lib/mysql"
- "./mysql/init:/docker-entrypoint-initdb.d"
networks:
- yishuocheng-net
educate:
build:
context: .
dockerfile: Dockerfile
container_name: educate
ports:
- "8080:8080"
networks:
- yishuocheng-net
depends_on:
- mysql
nginx:
image: nginx
container_name: nginx
ports:
- "18080:18080"
- "18081:18081"
volumes:
- "./nginx/nginx.conf:/etc/nginx/nginx.conf"
- "./nginx/html:/usr/share/nginx/html"
depends_on:
- educate
networks:
- yishuocheng-net
networks:
yishuocheng-net:
name: yishuocheng
三、快速构建项目
docker compose up -d

四、项目效果


五、移除项目
docker compose down
总结:
对于我们所准备的资源文件,像mysql、nginx、jar包、DockerFile文件最后和Docker-Compose.yml放在同一目录里面,方便Docker-Compose.yml文件的编写与统一管理

3002

被折叠的 条评论
为什么被折叠?



