使用docker-compose部署应用保姆级教程
首先什么是docker-compose?
Docker Compose 是 Docker 官方的多容器编排工具,通过一个 docker-compose.yml 配置文件,可定义多个关联容器(如应用服务、数据库、缓存等)的启动参数、网络、数据卷等,实现 “一键启动 / 停止整个应用集群”,无需手动逐个运行 docker run 命令。
形如:
两个作用
- 容器编排:
当应用依赖多个容器(如 Web 服务 + 数据库 + 缓存)时,Docker Compose 解决了 “手动管理多个容器的混乱问题”,核心是按规则协调多个容器的启动、依赖、网络、通信。
就像一个 “项目经理”,负责安排多个 “员工”(容器)的工作:谁先开工(启动顺序)、谁和谁能沟通(网络)、工作出问题了自动复工(restart: always),不用你逐个催促和协调。 - docker容器的配置文件化:
把原本需要在 docker run 命令后拼接的所有参数(端口、环境变量、数据卷、启动命令等),统一写入 docker-compose.yml 配置文件,核心是标准化、可复用、可维护。
就像一份 “产品说明书”,把每个 “产品”(容器)的参数(端口、密码、存储路径)都写清楚,任何人拿着这份说明书,都能快速搭建出和你完全一致的环境,不用你口头传授 “要加什么参数、要挂载哪个目录”。
核心概念
- docker-compose.yml:核心配置文件(YAML 格式),定义所有服务、网络、数据卷;
- 服务(Service):一个应用的独立组件(如 Web 服务、MySQL 服务、Redis 服务),对应一个容器;
- 网络(Network):多个服务通过自定义网络通信(默认自动创建桥接网络,服务名即 hostname)多个项目互不干扰;
- 数据卷(Volume):持久化服务数据(如 MySQL 数据、Redis 缓存)。
总流程
- 在opt目录下创建test,在test下创建data目录,将需要部署的jar包放入data中(一开始在test中,需要使用mv指令,移动到data中,重新上传也行)

- 在test目录下
vi docker-compose.yml
version: '3'
services:test:image: "test:1.0" # 自定义的镜像名称container_name: testrestart: alwaysports:- 28080:8080 # 前边端口号自己可以随便定义,后边是部署项目的端口号已打包好的volumes:- ./data/:/app # 定义映射路径,持久化environment:- TZ=Asia/Shanghainetworks:- test
# docker内网
networks:test:external: true
- 使用命令,创建网络组:
docker network create test
- 启动:
docker-compose up -d
- 查看日志是否成功启动:
docker logs -f test

这就是总体流程啦!
