赞
踩
一、前面几篇博客通过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文件,运行时指定不同的配置文件。
学海无涯苦作舟!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。