当前位置: 首页 > news >正文

十六、Docker Compose容器编排第一篇

1、概述

        Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。然后,使用一个命令,您可以从您的配置中创建并启动所有服务。

        Compose 适用于所有环境:生产、暂存、开发、测试以及 CI 工作流。它还具有用于管理应用程序整个生命周期的命令。

        以上是官网的描述。我这里大白话描述下,我们有一个订单微服务项目(item-service),这个项目依赖了redis、mysql,平常我们启动item-service项目,我们需要按照顺序检查并启动redis、mysql、item-service 这样我们就需要创建并启动3个容器,是不是很麻烦呢?有了docker compose 以后我们就需要执行一个命令即可全部启动。

2、安装方式

2.1、安装 Docker Desktop

        获取 Docker Compose 的最简单和推荐的方法是安装 Docker Desktop。Docker Desktop 包括 Docker Compose 以及 Docker Engine 和 Docker CLI,它们是 Compose 的先决条件。

 Desktop安装教程:Docker Desktop | Docker Documentation

        如果您已经安装了 Docker Desktop,您可以通过从 Docker 菜单中选择关于 Docker Desktop来检查您拥有的 Compose 版本

2.2、安装 Compose 插件

在安装Compose 插件可以先执行命令:

docker compose version

看下是否已安装,因为安装安装Docker Engine时,按照官网提供的命令,这个插件也会一并安装

如果未安装,则按照以下安装教程安装:

  • Ubuntu and Debian 执行一下命令
sudo apt-get update
sudo apt-get install docker-compose-plugin
  • Centos等可执行yum命令
sudo yum update
sudo yum install docker-compose-plugin

安装完以后,再执行 ”docker compose version“命令,检查是否安装成功

2.3、独立安装 Compose

  • (1)、要下载并安装独立的 Compose,请运行
curl -SL https://github.com/docker/compose/releases/download/v2.14.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
  • (2)、将可执行权限应用于安装目标路径中的独立二进制文件。
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  • (3)、使用 测试和执行组合命令docker-compose
docker-compose version

注意:独立安装方式,安装完后,执行命令用  ”docker-compose  xxx“ ,而其他安装方式则执行命令:”docker compose xxx“  后续所有演示,我均用 ”docker compose xxx“ 命令

2、Compose使用的三个步骤

  • (1)、编写Dockerfile定义各个微服务应用并构建出对应的镜像文件
  • (2)、使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务。
  • (3)、最后,执行docker compose up命令 来启动并运行整个应用程序,完成一键部署上线

下一篇我们继续讲解docker-compose常用命令、在实战中怎么使用。

相关文章:

  • 时序预测 | MATLAB实现IWOA-LSTM和LSTM时间序列预测(改进的鲸鱼算法优化长短期记忆神经网络)
  • CSS预处理语言LESS与SCSS的介绍
  • 互联网摸鱼日报(2022-12-26)
  • 【Python学习记录】matplotlib绘图基本配置
  • java语言的resource 接口
  • 【C语言进阶】想用好C++?那就一定要掌握动态内存管理
  • 【Maven基础】单一架构案例(三)
  • Nacos 寻址机制
  • Python绘制地磁场
  • Android -- 每日一问:介绍一下你经常浏览的 Android 技术网站
  • 2023跨年代码(烟花+自定义文字+背景音乐+雪花+倒计时)
  • Linux 命令(235)—— mktemp 命令
  • You are not allowed to create a user with GRANT
  • 分布式系列之聊聊Nginx实现原理
  • RabbitMQ:基本消息模型
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 2019.2.20 c++ 知识梳理
  • Android组件 - 收藏集 - 掘金
  • CODING 缺陷管理功能正式开始公测
  • fetch 从初识到应用
  • Iterator 和 for...of 循环
  • React-生命周期杂记
  • Solarized Scheme
  • SQLServer插入数据
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Vue官网教程学习过程中值得记录的一些事情
  • 阿里云Kubernetes容器服务上体验Knative
  • 构造函数(constructor)与原型链(prototype)关系
  • 缓存与缓冲
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 目录与文件属性:编写ls
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 前端相关框架总和
  • 删除表内多余的重复数据
  • 使用权重正则化较少模型过拟合
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 我感觉这是史上最牛的防sql注入方法类
  • 译米田引理
  • linux 淘宝开源监控工具tsar
  • Nginx实现动静分离
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (1)bark-ml
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (二)Eureka服务搭建,服务注册,服务发现
  • (分布式缓存)Redis持久化
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (一)SpringBoot3---尚硅谷总结
  • (转)shell中括号的特殊用法 linux if多条件判断
  • **python多态
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008