本文为博主原创,未经允许不得转载:

目录:

  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

使用docker compose 编排微服务发布的更多相关文章

  1. 使用Docker Compose编排微服务

    一般微服务架构会包含若干个微服务,而每个微服务可以有多个实例,如果每个微服务都有手动启停,那么效率就很低.维护量比较大. 所以我们可以使用Docker Compose来轻松.高效地管理容器. 一.安装 ...

  2. Jenkins-k8s-helm-harbor-githab-mysql-nfs微服务发布平台实战

    基于 K8S 构建 Jenkins 微服务发布平台 实现汇总: 发布流程设计讲解 准备基础环境 K8s环境(部署Ingress Controller,CoreDNS,Calico/Flannel) 部 ...

  3. Jenkins-k8s-helm-eureka-harbor-githab-mysql-nfs微服务发布平台实战

    基于 K8S 构建 Jenkins 微服务发布平台 实现汇总: 发布流程设计讲解 准备基础环境 K8s环境(部署Ingress Controller,CoreDNS,Calico/Flannel) 部 ...

  4. 使用Docker compose编排Laravel应用

    前言 Laravel官方开发环境推荐的是Homestead(其实就是一个封装好的Vagrant box),我感觉这个比较重,于是自己用Docker compose编排了一套开发环境,在这里分享下. 环 ...

  5. SpringCloud微服务实战——搭建企业级开发框架(三十四):SpringCloud + Docker + k8s实现微服务集群打包部署-Maven打包配置

      SpringCloud微服务包含多个SpringBoot可运行的应用程序,在单应用程序下,版本发布时的打包部署还相对简单,当有多个应用程序的微服务发布部署时,原先的单应用程序部署方式就会显得复杂且 ...

  6. Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务

    本篇为Docker从入门到掉坑第二篇:基于Docker构建SpringBoot微服务,没有看过上一篇的最好读过 Docker 从入门到掉坑 之后,阅读本篇. 在之前的文章里面介绍了如何基于docker ...

  7. 使用Docker Compose编排Spring Cloud微服务

    文章目录 微服务构建实例 简化Compose的编写 编排高可用的Eureka Server 编排高可用Spring Cloud微服务集群及动态伸缩 微服务项目名称 项目微服务中的角色 microser ...

  8. Java框架Spring Boot & 服务治理框架Dubbo & 应用容器引擎Docker 实现微服务发布

    微服务系统架构实践 开发语言Java 8 框架使用Spring boot 服务治理框架Dubbo 容器部署Docker 持续集成Gitlab CI 持续部署Piplin 注册中心Zookeeper 服 ...

  9. SpringCloud微服务实战——搭建企业级开发框架(三十五):SpringCloud + Docker + k8s实现微服务集群打包部署-集群环境部署

    一.集群环境规划配置 生产环境不要使用一主多从,要使用多主多从.这里使用三台主机进行测试一台Master(172.16.20.111),两台Node(172.16.20.112和172.16.20.1 ...

  10. Docker Compose 部署Nginx服务实现负载均衡

    Compose简介: Compose是Docker容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose,不再需要使用shell脚本来启动容器.Comp ...

随机推荐

  1. tensorflow GPU版本配置加速环境

    import tensorflow as tf tf.test.is_gpu_available() 背景 环境:Anaconda .tensorflow_gpu==1.4.0 (这里就用1.4.0版 ...

  2. redis集群搭建注意事项

    官方教程:https://redis.io/docs/management/scaling/ 其他参考: https://note.youdao.com/ynoteshare/index.html?i ...

  3. Odoo接口说明

    通过使用PostMan调用Odoo - POST { "jsonrpc":"2.0", "params":{ "db": ...

  4. parameterType的用法

    在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的 ...

  5. ElasticSearch之cat task management API

    命令样例如下: curl -X GET "https://localhost:9200/_cat/tasks?v=true&pretty" --cacert $ES_HOM ...

  6. Python——Html(HEAD头部)

    HTML中HEAD头部设置(了解) 在HTML中,<head> 元素是文档的头部部分,通常包含了一些关于文档的元信息和链接到外部资源的标签.以下是一些常见的 <head> 元素 ...

  7. Python——第四章:匿名函数(lambda 函数)

    匿名函数也被称为 lambda 函数 lambda 函数是一种小型.一次性的.可以在一行内定义的匿名函数.它通常用于一些简单的操作,例如传递给高阶函数(接受函数作为参数的函数)或在一行内定义短小的功能 ...

  8. Shell的概念、shebang、bash的概念

    什么是shell shell的作用是 解释执行用户输入的命令或程序等 用户输入一条命令,shell就解释一条 键盘输入命令,Linux给与响应的方式,称之为交互式 linux的计算机是如何跟用户进行交 ...

  9. 文心一言 VS 讯飞星火 VS chatgpt (175)-- 算法导论13.3 4题

    四.用go语言,Teach 教授担心 RB-INSERT-FIXUP可能将 T.nil.color 设为 RED,这时,当 z 为根时第1行的测试就不会让循环终止.通过讨论 RB-INSERT-FIX ...

  10. 云小课|MRS基础原理之Hue组件介绍

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:Hue是一组WEB ...