DockerCompose

DockerCompose

服务编排

微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启动停止,维护的工作量会很大。来看下我们日常工作: 
	1、要从 Dockerfile build image 或者去 dockerhub 拉取 image 
	2、要创建多个 container 
	3、要管理这些container(启动停止删除) 
通过服务编排可以大量简化上面的工作服务编排:按照一定的业务规则批量管理容器
概念

DockerCompose 是一个编排多容器分布式部署的工具,提供命令集中管理容器化应用的完整开发周期,包括服务 构建,启动和停止。

使用步骤

  • 利用 Dockerfile 定义运行环境镜像
  • 使用 docker-compose.yml 定义组成应用的各服务
  • 运行 docker-compose up 启动应用
安装

Docker Compose 目前已经完全支持 Linux、MacOS 和 Windows,在安装 Compose 之前,需要先安装 Docker。

下面是以编译好的二进制包方式安装在 Linux 系统中。

安装 Compose:

curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-
`uname -m` -o /usr/local/bin/docker-compose

设置文件可执行权限:

chmod +x /usr/local/bin/docker-compose

查看版本信息:

docker-compose -version

在这里插入图片描述

卸载

二进制包方式安装的,删除二进制文件即可

rm /usr/local/bin/docker-compose
案例

编排 nginx+springboot

需求:使用 nginx 反向代理到 springboo 应用

实现步骤

第 1 步:在 root 目录下创建 docker-compose 目录,用于存放编排数据

mkdir docker-compose  #创建目录
ls					  #查看目录下文件
cd docker-compose/	  #进入目录
ll 					  #查看目录下文件详情

在这里插入图片描述

第 2 步:在 docker-compose 目录下创建并编写 docker-compose.yml 文件

创建文件命令:vim docker-compose.yml

在这里插入图片描述

文件内容:

version: '3'         #版本随便写
services: 			 #需要编排的服务:即nginx和app
	nginx:			
		image: nginx     #nginx服务来自于nginx镜像
		ports:
			- 80:80      #用宿主机的80端口来映射nginx容器的80端口
		links:		 	 #用links将当前容器链接其他容器
			- app		 #链接的容器,链接之后可以用app别名访问下面的app容器
		volumes:		 #数据卷的配置
			#将数据卷目录(./nginx/conf.d)挂载到nginx目录(/etc/nginx/conf.d)下
			- ./nginx/conf.d:/etc/nginx/conf.d   
	app:
		image: app        #app服务来自于app镜像
		expose:           
			- "8080"	  #将app服务的8080端口暴露,以便nginx服务访问

在这里插入图片描述

注意:docker 中一定要有编排的对象,即 nginx 镜像和 app 镜像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yX2LhuiO-1645709259767)(images/docker-compose05.png)]

第 3 步:配置 nginx 服务的反应代理

创建 ./nginx/conf.d 目录

mkdir -p ./nginx/conf.d    #-p表示递归创建子目录

在这里插入图片描述

第 4 步:在 ./nginx/conf.d 目录下创建并编写 app.conf 文件

创建 app.conf

命令:vim app.conf

在这里插入图片描述

server {
	listen 80;     #nginx标准配置,监听80端口。当访问80端口时,会直接跳转到 http://app:8080/hello 页面
	access_log off;
	location / {
		proxy_pass http://app:8080/hello;
	}
}

在这里插入图片描述

第 5 步:在 docker-compose 目录下使用命令启动容器

docker-compose up -d   #-d:加入表示进入守护模式,不加入表示进入命令行模式,默认不加

在这里插入图片描述

再次查询容器运行状态

在这里插入图片描述

打开浏览器访问 http://192.168.130.131:80 会跳转至 app 的 8080/hello 页面中。

在这里插入图片描述

第 6 步:停止 dockerCompose

命令:
docker-compose down  #停止命令
docker ps 			 #查看运行的容器

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花羽阁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值