目录
一、DockerCompose
1.1 基本介绍
1.2 Centos7安装DockerCompose
1.2.1 安装
1.2.2 修改文件权限
1.2.3 Base自动补全命令
二、部署微服务集群
DockerCompose:可以基于Compose文件帮我们快速部署分布式应用,而无需手动一个个创建和运行容器
帮助我们快速部署分布式应用,无需一个个微服务去构建镜像和部署
简言之:分布式部署的好帮手,集群的快速部署
Compose文件:文本文件,通过指令定义集群中的每个容器如何运行
我们之前使用docker run命令指定容器命名,而现在是用Compose文件定义集群中的n个容器运行,可以理解为docker run命令的集合,文件中不是直接用run,而是用指令代替了
语法例子:
版本是3.8,不同版本,语法有所差异
往下是两个微服务,一个是mysql,一个是web
新旧方式对比,发现左侧中的比较简洁,特别是web工程,最简洁
详细信息在下面的官网链接
Compose specification | Docker Documentation
下面是慢慢的下,不推荐
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
如果下载速度较慢,或者下载失败,可以使用课前资料提供的docker-compose文件,上传到`/usr/local/bin/`目录。
chmod +x /usr/local/bin/docker-compose
前后对比,发现运行完时绿了,绿了代表可以运行
curl -L http://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
如果执行上面的命令执行出错,执行完这面这个命令再执行上面的命令
echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts
这个地方我还没有接触到过微服务集群,这个地方写的不是很熟悉,先记录一下,以后用的话再回来学
18-DockerCompose-部署微服务集群_哔哩哔哩_bilibili
案例:将微服务集群利用DockerCompose部署
部署下面的文件
网关是整个微服务的入口,其他的服务不会暴露端口,只有网关会暴露端口
我们部署之间我们应该先修改一下cloud-demo项目,将数据库、nacos地址都命名为docker-compose中的服务名(我们之前都写的是localhost),比如下图是我们更改之后的内容
使用maven打包工具,将项目中的每个微服务都打包为app.jar
因为我们上面配置Dockerfile文件夹的时候,配置的是到文件夹下找app.jar
指定打包后的最终名称
我们打包好的app.jar拷贝到cloud-demo中的每一个对应的子目录中
将cloud-demo上传至虚拟机,利用docker-compose up -d来部署
我们还是放到tmp目录
跑起来
docker-compose up -d