完整教程:Docker Compose
2025-10-23 10:37 tlnshuju 阅读(3) 评论(0) 收藏 举报从前面2篇博客,通过手动构建镜像,然后部署。一个个部署还是特别麻烦。而且还不能统一的管理。
1.Docker Compose定义

2.Docker run命令和docker compose配置文件对比

从中可以看出,docker run 命令和docker compose的配置文件,存在一一对应的关系。但是书写形式有些差异,都规定端口映射,数据卷,配置文件 环境变量,网络等docker 容器运行需要的相关的参数。
3.Docker Compose部署命令

4.用docker compose部署docker应用
这个部署的容器包含,mysql,nginx ,java ,多个容器构成的项目。
docker-compose文件内容如下
version: "3.8"
services:
mysql:
image: mysql
container_name: mysql
ports:
- "3306:3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: Dcdell88
volumes:
- "./mysql/conf:/etc/mysql/conf.d"
- "./mysql/data:/var/lib/mysql"
- "./mysql/init:/docker-entrypoint-initdb.d"
networks:
- hm-net
hmall:
build:
context: .
dockerfile: Dockerfile
container_name: hmall
ports:
- "8080:8080"
networks:
- hm-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:
- hmall
networks:
- hm-net
networks:
hm-net:
name: hmall
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 hm-service.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]
运行结果如下。

浙公网安备 33010602011771号