DockerCompose快速部署分布式应用,集群部署微服务

一、什么是DockerCompose?

该文件是一个文本文件,通过指令定义集群中的每个容器如何运行。

二、对比Docker命令:

  1. Compose文件:以下的文件就描述了一个项目,其中包含两个容器:
    一个是基于mysql:5.17镜像构建的容器,并挂在了两个目录。
    一个是基于docker build临时构建的镜像容器,并映射端口8090。
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
		
  1. Docker命令:
#mysql容器,\为换行
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

  1. 其实compose文件就是将docker run的各种参数转换成指令

三、:compose安装(命令自查)与使用

  1. 假设有以下服务:

cloud-demo文件夹下:

nacos: dockerfile
mysql: /conf和/data
userservice: dockerfile
orderservice: dockerfile
gateway:dockerfile

  1. 编写compose文件:
version:"3.2"

services:
	nacos:
		iamge: nacos/nacos-server
		environment:
			MODE: standalone
		ports:
		 -  "8848:8848"
	mysql:
		#同上,$PWD为当前路径
		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"
  1. 修改项目里的地址。

比如mysql的地址:localhost:3306更换为mysql:3306。
又比如nacos的地址:localhost:8848更换为nacos:3306。

  1. maven打包各个微服务成app.jar包,放到对应目录中。最后将cloud-demo上传至虚拟机,执行docker-compose up -d部署。一般来说,会将注册中心nacos优先启动。

你可能感兴趣的:(运维巴拉巴拉说,docker,jar,docker-compose)