本文为博主原创,未经允许不得转载:
目录:
1. compose 简介
2. compose 安装
3. 编写 docker-compose.yml 实现微服务发布
4. docker-compose 常用命令
1.compose 简介
使用微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例。如果每个微服务都要手动启停,那么效率之低、维护量之大可想而知。使用 Docker Compose可轻松、高效地管理容器。
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
2.compose安装
2.1 安装python-pip
yum -y install epel-release
yum -y install python-pip
2.2 安装docker-compose
pip install docker-compose
2.3 待安装完成后,执行查询版本的命令
docker-compose version
3. 编写 docker-compose.yml 实现微服务发布
3.1、在根目录创建文件夹/app
3.2、在app目录下新建docker-compose.yml文件和三个文件夹nacos,user,order
3.3、在nacos,user,order三个文件夹下分别构建nacos服务镜像,user服务镜像,order服务镜像,以构建nacos服务镜像为例,在nacos文件夹下新建dockerfile文件并且将naco服务的可运行jar包上传到该目录(注意:默认情况下Compose以服务名称作为hostname被其他容器访问),dockerfile文件内容如下
# 基于哪个镜像 From java:8 # 将本地文件夹挂载到当前容器 VOLUME /tmp # 复制文件到容器 ADD nacos-server-0.0.1-SNAPSHOT.jar /app.jar # 声明需要暴露的端口 EXPOSE 8761 # 配置容器启动后执行的命令 ENTRYPOINT ["java","-jar","/app.jar"]
3.4、docker-compose.yml内容如下
version: '2' #docker的文件格式版本 services: eureka: #docker服务名 image: nacos #docker镜像 ports: - "8848:8848" user: image: user ports: - "8000:8000" order: image: order ports: - "8010:8010"
3.5、启动所有微服务
在命令后面加-d可以后台启动:
docker-compose up
3.6、访问三个微服务是否正常
4、docker-compose 常用命令
列出所有运行容器: docker-compose ps
查看服务日志输出 : docker-compose logs
构建或者重新构建服务 : docker-compose build
启动指定服务已存在的容器: docker-compose start nacos
停止已运行的服务的容器 : docker-compose stop nacos
删除指定服务的容器: docker-compose rm nacos
构建、启动容器 : docker-compose up
停止指定服务的容器 : docker-compose kill nacos