Linux docker5--docker-compose快速部署多个项目

本文介绍了如何利用docker-compose工具管理和部署包含几十或数百个服务的微服务项目,通过配置文件定义服务并实现一键启动、停止和重启,简化了复杂的部署流程。
摘要由CSDN通过智能技术生成

一、前面几篇博客通过docker完成了项目的部署和运行。实际工作中,我们的微服务项目部署时往往有几十甚至几百个服务,虽然单个部署很简单,但是几百个部署起来还是挺费劲的,今天我们来演示一下使用docker-compose是如何快速部署多个服务的。

二、docker-compose概念
是一个用来定义和运行多个复杂应用的Docker编排工具。通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

三、安装docker-compose步骤
1、安装Compose插件(使用储存库方式)
命令:
sudo yum update
sudo yum install docker-compose-plugin
如上的两条命令,第一条是更新yum插件库(会比较慢,稍等一下,),第二条是下载和安装docker-compose
在这里插入图片描述
运行第一条命令直到出现Complete,标识更新完成
在这里插入图片描述
在这里插入图片描述
注:
本例仅仅以存储库的形式进行安装,也可参考官网如下位置使用其他方式安装。
官网:https://docs.docker.com/compose/install/
在这里插入图片描述
2、验证安装完成
docker compose version
在这里插入图片描述

3、单机版安装(以上2步实际已经够用了,扩展一下)
命令:
curl -SL https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
以上命令,完成docker-compose下载,下载到/usr/local/bin/docker-compose路径下
在这里插入图片描述
执行下载后,打开目录可以看到如下
在这里插入图片描述
4、授予文件可执行的权限
命令:
chmod +x /usr/local/bin/docker-compose
在这里插入图片描述
5、查看是否安装成功
命令:
docker-compose version
在这里插入图片描述

以上的步骤,正常完成1,2或者3,4,5都可以。如果不行的话,可以从1到5都完成一下。

四、使用docker-compose运行多个项目
本例以同时启动redis和部署两个java服务为例。
1、创建目录,编写docker-compose.yml文件
如下:创建了一个目录,放上去docker-compose.yml和boot1,boot2两个文件夹。
在这里插入图片描述
docker-compose.yml配置如下:
示意:
(1)、使用redis的latest版本的镜像,以宿主机6379端口映射内部6379端口启动redis服务
(2)、在boot1目录下构建镜像,同时以宿主机8090 端口映射内部8000端口启动java服务
(3)、在boot2目录下构建镜像,同时以宿主机8091 端口映射内部8000端口启动java服务

version: "3"
services:

  redis:
    image: redis:latest
    ports:
      - 6379:6379

  boot1:
    build: ./boot1
    ports:
      - 8090:8000

  boot2:
    build: ./boot2
    ports:
      - 8091:8000

2、在boot1中放入构建所需的jar包和Dockerfile文件
在这里插入图片描述
boot1下的Dockerfile示例如下:
注意:jar包名称需要和放入的jar包名称一致,通知暴露端口(8000)需要和上面docker-compose.yml映射的内部端口一致

# 使用OpenJDK作为基础镜像  
FROM openjdk:8-jre-alpine  
  
# 设置工作目录  
WORKDIR /app  
  
# 将本地的JAR包复制到容器的/app目录下  
COPY boot1.jar /app/  
  
# 设置环境变量,指定JAR包名  
ENV JAR_FILE=boot1.jar  
  
# 暴露应用的端口(根据你的应用需要修改)  
EXPOSE 8000
  
# 启动命令  
ENTRYPOINT java -jar /app/boot1.jar

3、同理,按照2步骤,放入boot2文件夹的jar包和Dockerfile
在这里插入图片描述
4、使用docker-compose运行上面的docker-compose.yml配置
命令:
docker-compose -f docker-compose.yml up -d
在这里插入图片描述
5、运行完成后,验证下运行结果
(1)、docker images可以查看到boot1和boot2的镜像构建完成
在这里插入图片描述
(2)、docker ps可以看到启动了redis和boot1和boot2,一共3个服务
在这里插入图片描述
(3)、redis连接正常
在这里插入图片描述
(4)、boot1(宿主机:8090端口)服务调用正常
在这里插入图片描述
(5)、boot2(宿主机:8091端口)服务调用正常
在这里插入图片描述

以上完成了使用docker-compose,快速部署多个项目的演示。如果需要部署不同的服务,仅修改docker-compose.yml即可。也可以创建多个docker-compose.yml文件,运行时指定不同的配置文件。

学海无涯苦作舟!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值