一、什么是DockerCompose?
该文件是一个文本文件,通过指令定义集群中的每个容器如何运行。
二、对比Docker命令:
- Compose文件:
services:
mysql:
image:mysql: 5.17
environment:
MYSQL_ROOT_PASSWORD: 123
volumes:
-/tmp/mysql/data:/var/lib/mysql
-/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf
web:
build: .
ports:
- 8090: 8090
- Docker命令:
docker run -e MYSQL_ROOT_PASSWORD=123 -p 3306:3306 \
-v -/tmp/mysql/data:/var/lib/mysql \
-v -/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-d \
mysql:5.17
docker build -t web:1.0
docker run --name web -p 8090:8090 -d web:1.0
- 其实compose文件就是将docker run的各种参数转换成指令。
三、:compose安装(命令自查)与使用
- 假设有以下服务:
cloud-demo文件夹下:
nacos: dockerfile mysql: /conf和/data userservice: dockerfile orderservice: dockerfile gateway:dockerfile
- 编写compose文件:
version:"3.2"
services:
nacos:
iamge: nacos/nacos-server
environment:
MODE: standalone
ports:
- "8848:8848"
mysql:
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"
- 修改项目里的地址。
比如mysql的地址:localhost:3306更换为mysql:3306。 又比如nacos的地址:localhost:8848更换为nacos:3306。
- maven打包各个微服务成app.jar包,放到对应目录中。最后将cloud-demo上传至虚拟机,执行docker-compose up -d部署。一般来说,会将注册中心nacos优先启动。
|