5_服务编排_docker-compose

news2024/10/5 13:43:56

服务编排之Docker Compose

微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。

  • 要从Dockerfile build image 或者去dockerhub拉取image

  • 要创建多个container

  • 要管理这些container(启动停止删除)

服务编排: 按照一定的业务规则批量管理容器

Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。使用步骤:

1、利用 Dockerfile 定义运行环境镜像

2、使用 docker-compose.yml 定义组成应用的各服务

3、运行 docker-compose up 启动应用

一、安装Docker Compose

# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose
# 查看版本信息 
docker-compose -version
#安装的版本信息:docker-compose version 1.22.0, build f46880fe

二、卸载Docker Compose

# 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose

三、 使用docker compose编排nginx+springboot项目

前置条件:需要用到的镜像和已经启动的容器如下,不要冲突了

在这里插入图片描述

  1. 创建docker-compose目录,目录随意
mkdir ~/docker-compose
cd ~/docker-compose
  1. 编写 docker-compose.yml 文件,这个名称是固定的
version: '3'
services:
  nginx:  #第一个容器,这个容器名称名称可以随便起
   image: nginx #这个名称是镜像名称,根据实际镜像名称起,如果是最新的不用加版本号,不是的话要加版本号
   ports:
    - 80:80
   links:
    - app
   volumes:
    - ./nginx/conf.d:/etc/nginx/conf.d #挂载
  app: #第二个容器,这个容器名称名称可以随便起
    image: my_app:1.0 #上篇用dockerfile打包的镜像名称
    expose:
      - "8080"
  1. 创建./nginx/conf.d目录
mkdir -p ./nginx/conf.d
  1. 在./nginx/conf.d目录下 编写coderhome.conf文件
server {
    listen 80;
    access_log off;

    location / {
        proxy_pass http://app:8080;
    }
   
}
  1. 在~/docker-compose 目录下 使用docker-compose 启动容器
docker-compose up #加-d表示后台启动

在这里插入图片描述

  1. 测试访问
http://119.xx.xx.xxx/test

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/491172.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GB/T25915.1法规基本标准-洁净室按粒子浓度划分洁净

《GB/T25915.1-2021洁净室及相关受控环境 第一部分:按粒子浓度划分空气洁净度等级》等4部国家标准。 今天小编跟大家分享一下参编的GB/T25915.1-2021相关法规文件内容,帮助大家更好的了解相关法规知识。 1 范围 本文件规定了按空气中悬浮粒子浓度划分洁…

9:00进去,9:05就出来了,这问的也太···

从外包出来,没想到死在另一家厂子了。 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推…

纯前端 根据目录解析word,拆分不同段落

前期回顾 两分钟学会 制作自己的浏览器 —— 并将 ChatGPT 接入_0.活在风浪里的博客-CSDN博客自定义浏览器,并集合ChatGPT,源码已公开https://blog.csdn.net/m0_57904695/article/details/130467253?spm1001.2014.3001.5501 👍 本文专栏…

Unity之OpenXR+XR Interaction Toolkit实现 监听VR手柄按键

一.前言 当我们接入XR Interaction Toolkit之后,我们可以很方便的做不同VR设备的适配,这在很大程度上提升了我们的开发效率,我们除了通过射线和物体交互之外,偶尔我们也会希望监听手柄上的部分按键的点击事件,今天我们…

网络安全大厂面试题合集

以下为网络安全各个方向涉及的面试题合集,星数越多代表问题出现的几率越大,祝各位都能找到满意的工作。 注:本套面试题,已整理成pdf文档,但内容还在持续更新中,因为无论如何都不可能覆盖所有的面试问题&…

国考省考结构化面试:情景模拟题的答题思路,人际关系题的变种,就题答题,灵活多变,关键在自己多思考,说话要有艺术

国考省考结构化面试:情景模拟题的答题思路,人际关系题的变种,就题答题,灵活多变,关键在自己多思考,说话要有艺术 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带…

ansible常用模块总结

目录 一、 assert模块 二、 authorized_key模块 三、at模块 四、blockinfile模块 五、command模块 六、copy模块 七、 cron模块 八、 firewalld模块 九、 fail模块 十、 file模块 十一、 fetch模块 十二、filesystem模块 十三、 get_url模块 十四、group模块 十…

基于pytorch+transformers的车牌识别

目录 程序流程设计熟悉训练数据集CCPD2019数据集CCPD数据集标注信息单例再现 加载本地车牌数据集 程序流程设计 1,熟悉训练数据集; 2,加载本地车牌数据集; 3,定义网络模型; 4,输入数据集训练模…

关于复杂事件处理和事件驱动架构的争论

复杂事件处理(Complex Event Processing,CEP)系统和事件驱动架构(Event Driven Architecture,EDA)都被认为会在目前和未来的精致繁杂的系统设计中扮演重要角色。但是它们的角色是什么?会对业界产…

初识vue-模板

目录 模板语法 模板插值 指令 条件渲染(v-if ;v-show) 列表循环(v-for) ref JSX(render渲染) 条件渲染 列表渲染 八皇后框架-背景格(循环) 模板语法 Vue.js使用了…

Vue3+Element Plus环境搭建和一键切换明暗主题的配置

Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。而Element Plus是一款基于Vue3面向设计师和开发者的组件库。 最终效果: 环境搭建 已安装 16.0 或更高版本的 Node.js,终端: npm init vuelatest这一…

智慧校园系统平台实现校内导航资产管线一体化管理

构建智慧校园系统平台是国家和大专院校共同倡议的校园信息化建设方向,是运用物联网技术搭建的一体化综合平台,基于各种应用服务系统,把学校的教务、办公、教学、学习、管理、资产、校园安全、安防、消防等各个环节融为一体,提高学…

MATLAB算法实战应用案例精讲-【人工智能】对比学习(概念篇)(补充篇)

目录 前言 几个高频面试题目 基于对比学习(ContrastiveLearning)的文本表示模型【为什么】能学到文本【相似】度? 为什么对比学习能学到很好的语义相似度? 那么如何评价这个表示空间的质量呢? 知识储备 监督学习和非监督学习 算法原理…

Web开发人员的10个数据库优化最佳实践

数据库优化已经成为web开发人员提高web应用程序性能,从而改善用户体验的关键。对一些人来说,这可能听起来不太吸引人,但如果能正确地优化数据库,就可以提高性能、减少瓶颈并节省资源。 幸运的是,有些优化技术在sql查询…

sqlserver object_id()函数学习

在SQLServer数据库中,如果查询数据库中是否存在指定名称的索引或者外键约束等,经常会用到object_id(name,type)方法, 语法:object_id(objectname)或object(objectname,type) 作用:该函数会返回指定对象的ID值&#xf…

springboot 整合ehchace 缓存教程

ehcache介绍 Ehcache是一种高性能、开源的Java缓存框架,被广泛应用于许多大规模、高并发的分布式系统中。它提供了一种快速、可扩展、分布式的数据缓存方案,支持各种内存级别的缓存、磁盘级别的缓存、分布式缓存等。Ehcache设计目标主要是提供高性能和可…

【LeetCode】198.打家劫舍

198.打家劫舍(中等) 思路 定义数组 dp, dp[i] 表示抢劫到第 i 个房子的时候,可以抢劫的最大数量。dp[i] 有两种可能:一种是我们选择不抢劫这个房子,此时累积金额为 dp[i-1] ;另一种是我们选择抢…

儿童用灯哪个品牌好?推荐专业的儿童护眼台灯

一款好的儿童台灯,主要是从5个方面决定,照度及均匀度,蓝光,色温,显指,频闪 ① 照度及均匀度最高是国AA级,其次就是国A级 ② 蓝光一定要选择RG0无危险级,蓝光能量最强,…

给你安利一款不需要魔法就能免费使用的idea插件Bito-ChatGPT

一款不需要魔法就能免费使用的idea插件Bito-ChatGPT 一 、写在前面二、Bito是什么? 🔑🔑 **What does Bito AI do?**三 、安装Bito四、使用Bito4.1 创建个人工作空间4.2 使用Bito4.2.1 问任何技术问题(Ask any technical questio…

端口聚合与Hash算法

目录 前言 一、Hash算法简介 二、负载分担 1.逐流负载分担 2.逐包负载分担 三、Hash算法与负载分担 1.转发原理 四、堆叠情况下的负载分担 五、配置流程 前言 提示:关于Hash与负载分担方式 提示:以下是本篇文章正文内容,下面案例可供…