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

news2025/4/17 18:18:03

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常用命令、在实战中怎么使用。

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

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

相关文章

node.js+uni计算机毕设项目高校自习室座位网上预约小程序(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等…

获取淘宝价格区间l-r的商品a的详细信息(商品名等)

看了一眼,上次更新距今2个月,看起来我好咕咕啊(感叹),可是感觉这两个月也没闲着捏(比赛,cf,期末等等,幸亏期末考延期了,我这被期末作业都整死了快&#xff09…

SpringBoot+Vue项目艺术摄影预约系统设计与实现

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JD…

Python pandas有几千个库函数,你用过几个?(2)

上一篇链接: Python pandas有几千个库函数,你用过几个?(1)_Hann Yang的博客-CSDN博客 I~Q: Function10~25 Types[Function][9:25] [infer_freq, interval_range, isna, isnull, json_normalize, lreshap…

微信HOOK 协议接口 实战开发篇 1.登录

使用HOOK也有不短的时间,写的各类接口杂乱无章 于是便有了将所有接口重构,整理一下的想法 顺手将整理的要点作为日志记录下来 预计每类接口写一篇日志,本次使用的是2022.12.24,当前微信最新版3.8.1.26版 言归正传,开始…

【秋招总结】双非本小菜鸡的坎坷秋招之路(附面经)

前言 因为大环境的影响,今年秋招hc骤缩,导致竞争的激烈程度比往年高了不少。 在秋招的时候,经历过简历石沉大海的无奈,也体验过人家收割offer而自己却依旧0offer的焦虑,不过好在最终也拿到了还算满意的结果。 如今我…

python爬虫把数据保存到csv、mysql中

啧,放假几天游戏玩腻了,啥都不想干,突然想起来python这玩意,无聊就来玩玩 目录 先是保存csv里面 然后保存到mysql里 目标:起点 主要是拿到这几个数据 分析下网页 一个li对应一本小说,打开li看里面的东西 …

Android ViewPager2 实现阅读器横向翻页效果(三)--- 实时动态分页及章节切换效果的原理及实现

文章目录Android ViewPager2 实现阅读器横向翻页效果(三)--- 实时动态分页及章节切换效果的原理及实现关键概念引入初始数据准备ViewPager Adapter 动态分页 及 第一次分页分页后更新窗口 及 首页尾页的特殊处理翻页状态监听 及 动态章节切换Android Vie…

BIT.4 Linux进程控制

目录进程创建fork函数初识写实拷贝fork常规用法fork调用失败的原因补充知识进程终止进程退出场景进程常见退出方法exit函数与_exit函数return 退出补充知识进程等待进程等待必要性进程等待的方法wait方法waitpid方法wait / waitpid 阻塞代码WIFEXITEDwait / waitpid 非阻塞代码…

LeetCode刷题复盘笔记—一文搞懂动态规划之718. 最长重复子数组问题(动态规划系列第三十一篇)

今日主要总结一下动态规划的一道题目,718. 最长重复子数组 题目:718. 最长重复子数组 Leetcode题目地址 题目描述: 给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。 示例 1: …

华熙LIVE·五棵松商业北区明年国庆亮相 互动体验升级

京城着名的活力聚集地——华熙LIVE五棵松明年将增添两万多平米商业区,新增商业区位于现有商业区北侧并与之相连通,业态在承袭现有沉浸式互动体验业态基础上,将引进元宇宙等前沿科技和跳楼机等娱乐设施,使互动体验进一步升级。项目…

一文搞懂Linux内核中断机制原理与实现

为什么需要中断? 如果让内核定期对设备进行轮询,以便处理设备,那会做很多无用功,因为外设的处理速度一般慢于CPU,而CPU不能一直等待外部事件。所以能让设备在需要内核时主动通知内核,会是一个聪明的方式&a…

JWT渗透与攻防(一)

目录 前言 JWT漏洞介绍 案列演示之Leaky_JWT JWT漏洞具体的实现方式: 案列演示之JWT None Algorithm JWT漏洞工具的利用 JWT利用工具介绍 jwt_tool 漏洞利用 jwt-cracker c-jwt-cracker 前言 Json web token (JWT)相关漏洞对于渗透测试人员而言可能是一种…

node.js+uni计算机毕设项目店内点餐微信小程序LW(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等…

【Pandas入门教程】如何从现有列派生新列

如何从现有列派生新列 来源:Pandas官网:https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html 笔记托管:https://gitee.com/DingJiaxiong/machine-learning-study 文章目录如何从现有列派生新列导包数据集准备【1】如…

C++——STL之stack和queue详解

C——STL之stack和queue详解🏐什么是stack和queue🏐stack和queue的实现🏀什么是deque🏀stack的模拟实现🏀queue的模拟实现🏐优先级队列(priority_queue)🏀优先级队列的实现⚽push⚽p…

Spring Authorization Server1.0 介绍与使用

一、版本使用 1、Java&#xff1a;17或者更高的版本。 2、springboot 3.0 3、Spring Authorization Server 1.0版本。 <dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-oauth2-authorization-server</ar…

使用proxy_pool来为爬虫程序自动更换代理IP

文章目录1. 前言2. 教程3. 官网4. 在线demo4.1. 本地部署4.2. 安装4.2.1. Python源码构建安装4.2.1.1. 安装redis数据库4.2.1.1.1. 下载redis源码4.2.1.1.2. 启动redis服务4.2.1.1.3. 安装redis服务4.2.1.1.4. 再次通过命令启动redis服务4.2.1.1.5. 测试redis服务是否可用4.2.1…

node.js+uni计算机毕设项目基于微信小程序的车位共享系统LWPPT(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等…

C语言程序设计--银行管理系统

主界面 登入界面 #include <stdio.h> #include <malloc.h> #include <conio.h> #include <time.h> #include <windows.h> #define MB_ICONINFORMATION MB_ICONASTERISK //对 错误 struct account_information /…