0%

DockerCompose

什么是DockerCompose

  • DockerCompose可以基于Compose文件帮用户快速部署分布式应用,而无需手动一个个创建和运行容器
  • Compose文件是一个文本文件,通过指令定义集群中每个容器如何运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: "3.2"

services:
nacos:
image: nacos/nacos-server
environment:
MODE: standalone
ports:
- "8848:8848"
mysql:
image: mysql:5.7.25
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- "$PWD/mysql/data:/var/lib/mysql"
- "$PWD/mysql/conf:/etc/mysql/conf.d/"
userservice:
build: ./user-service
orderservice:
build: ./order-service
gateway:
build: ./gateway
ports:
- "10010:10010"

可以看到,其中包含5个service服务:

  • nacos:作为注册中心和配置中心
    • image: nacos/nacos-server: 基于nacos/nacos-server镜像构建
    • environment:环境变量
      • MODE: standalone:单点模式启动
    • ports:端口映射,这里暴露了8848端口
  • mysql:数据库
    • image: mysql:5.7.25:镜像版本是mysql:5.7.25
    • environment:环境变量
      • MYSQL_ROOT_PASSWORD: 123456:设置数据库root账户的密码
    • volumes:数据卷挂载,这里挂载了mysql的data、conf目录,其中有我提前准备好的数据
  • userserviceorderservicegateway:都是基于Dockerfile临时构建的
  • 修改cloud-demo项目,将数据库、nacos地址都命名为docker-compose中的服务名
  • 使用maven打包工具,将项目中的每个微服务都打包为app.jar
  • 将打包好的app.jar拷贝到cloud-demo中的每一个对应子目录中
  • 将cloud-demo上传至虚拟机,利用docker-compose up -d来部署
------ THEEND ------

欢迎关注我的其它发布渠道