十二、Docker Compose 介绍与安装

news2024/9/23 1:27:46

学习参考:尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出)

目录

  • 前言
  • 一、docker compose介绍
  • 二、docker compose能干嘛
  • 三、docker compose安装与卸载
    • 3.1 docker-compose安装
    • 3.2 docker-compose卸载
  • 总结

前言

在使用k8s之前,随着容器数量的增加,如何对容器进行管理是一件重要的事情。例如容器之间的启动顺序管理、容器之间的网络调用管理等等。实际的开发环境和生产环境可不只是向我们刚刚开始学习时候就那几个简单的容器,复杂的容器关系也是必须处理好的一个重要任务。docker-compose就是为了解决这样的问题。

一、docker compose介绍

Docker-Compose是Docker官方的开源项目, 负责实现对Docker容器集群的快速编排。
在这里插入图片描述

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

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

  • 启动、停止和重建服务
  • 查看正在运行的服务的状态
  • 流式传输正在运行的服务的日志输出
  • 在服务上运行一次性命令

二、docker compose能干嘛

在这里插入图片描述

  Compose 使其有效的主要功能包括:

  • 在单个主机上拥有多个隔离环境
  • 创建容器时保留卷数据
  • 仅重新创建已更改的容器
  • 支持变量并在环境之间移动组合

就像是Spring一样,管理者哥哥对象的生命周期,和相关的操作。

docker建议我们每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来但是这样我们又面临了一个问题?

如果我需要同时部署好多个服务,难道要每个服务单独写Dockerfile然后在构建镜像,构建容器,这样累都累死了,所以docker官方给我们提供了docker-compose多服务部署的工具

例如要实现一个Web微服务项目,除了Web服务容器本身,往往还需要再加上后端的数据库mysql服务容器,redis服务器,注册中心eureka,甚至还包括负载均衡容器等等。。。。。。

Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。


三、docker compose安装与卸载

官网
https://docs.docker.com/compose/compose-file/compose-file-v3/
官网下载
https://docs.docker.com/compose/install/

3.1 docker-compose安装

在这里插入图片描述
如图,在官网上可以看到,安装,单机版安装,卸载3个目录。可以参考进一步学习。
这里先贴出来我的docker版本(24.0.2),官网现在推荐使用compose V2了,版本太低也可以使用,但是V1将不会更新了。变化不是很多。后续会写一个V1和V2的对比,目前可以参考,官网的Migrate to Compose V2
在这里插入图片描述

  1. 如果版本太低,先更新一下docker的版本
    要安装最新版本,请运行:
    yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  2. 下载安装
    DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
    mkdir -p $DOCKER_CONFIG/cli-plugins
    curl -SL https://github.com/docker/compose/releases/download/v2.19.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
    
    此命令下载最新版本的 Docker Compose(从 Compose 版本存储库)并在$HOME 目录下为当前用户安装 Compose。
    tips:
    • 为系统上的所有用户使用 Docker Compose,将 ~/.docker/cli-plugins 替换为 /usr/local/lib/docker/cli-plugins
    • 不同版本的 Compose,将v2.19.1替换为要使用的 Compose 版本。
    • 对于不同的架构,请将x86_64替换为想要的架构。
      我这里为全部用户安装,命令如下:
    DOCKER_CONFIG=${DOCKER_CONFIG:-/usr/local/lib/docker/cli-plugins}
    mkdir -p $DOCKER_CONFIG/cli-plugins
    curl -SL https://github.com/docker/compose/releases/download/v2.19.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
    
    在这里插入图片描述
  3. 对文件应用可执行权限:
    chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
    
    在这里插入图片描述
  4. 测试安装是否成功
    docker compose version #之前的v1版本命令是docker-compose --version
    
    在这里插入图片描述
    到这里就安装成功了!

3.2 docker-compose卸载

rm $DOCKER_CONFIG/cli-plugins/docker-compose

这就不演示了,刚刚装上,就不卸载了。

总结

下一篇内容将会写去使用docker compose。


其他说明

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

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

相关文章

overleaf 常用命令

ctrlb 加粗 ctrli 斜体 \emph 斜体,强调 行内公式 $ a b c $ 行间公式 \begin{equation} ab_cd \end{equation} 交叉引用 1.引入宏包 \usepackage[colorlinks]{hyperref} 2.\label \subsection{related wok}\label{sec:related work} this is related …

【开源分享】在线客服系统源码,支持发送文本表情,上传图片附件附详细搭建教程...

源码介绍 golang开发的单用户在线客服系统,功能非常的简洁实用,没有多余的功能。golang语言可编译为二进制程序,自带守护进程功能,相比于流传最广的PHP客服系统要稳定 环境配置 服务器:linux 或者 windows都可以 golan…

剑指offer36.二叉搜索树与双向链表

将二叉树转换成排序的双向循环链表,其中包含三个条件:1,排序;2,双向链表;3,循环链表; 条件1:将一个树排序很简单,采用“左-->根-->右”的中序遍历方式…

本地部署 ChatGLM2-6B

本地部署 ChatGLM2-6B 1. 什么是 ChatGLM2-6B2. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 安装 ChatGLM2-6B6. 启动 ChatGLM2-6B7. 访问 ChatGLM2-6B8. API部署9. OpenAI 格式的流式 API 部署10. 命令行部署11. ChatGLM2-6B 的推理参数含义 1. 什么是 ChatGLM2-6B Cha…

JS Node 模块化解释:AMD、UMD、CommonJS、 ESM

一、前言 传统方式下&#xff0c;JS 若想引入其它 JS 文件时&#xff0c;通常使用 <script> 语法来完成&#xff0c;然而引入的 JS 往往易于造成命名污染&#xff0c;为了解决这问题&#xff0c;模块化 开发的概念逐渐浮现。 本文将以完整的 Demo 将各大模块模块的概念…

树莓派(香橙派)交叉编译

目录 1、交叉编译是什么 2、为什么要交叉编译&#xff1f; 3、交叉编译需要用到什么工具&#xff1f; 4、&#xff08;香橙派&#xff09;交叉编译工具链的安装 5、 交叉编译服务端客户端 6、 带wiringPi库的交叉编译如何进行 1、交叉编译是什么 交叉编译是在一个平台上生…

叠加态和超级定位:量子世界的奇特现象

亲爱的读者&#xff0c; 欢迎回到我们的量子力学系列文章。在前几篇文章中&#xff0c;我们介绍了量子力学的起源、基本概念以及波函数作为描述量子世界的数学工具。今天&#xff0c;我们将深入探索量子力学中的奇特现象&#xff0c;包括叠加态和超级定位。 在量子力学中&…

sklearn高级功能

包括构造数据集、正则化、交叉验证 1.构造数据集 from sklearn import datasets import matplotlib.pyplot as plt #构造数据 #用函数来建立 100 个 sample&#xff0c;有一个 feature&#xff0c;和一个 target&#xff0c;这样比较方便可视化。 X, y datasets.make_regres…

Python开发项目基于大数据的反电信诈骗管理系统设计与实现

博主介绍&#xff1a;擅长Java、微信小程序、Python、Android等&#xff0c;专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不然下次找不到哟 Java项目精品实战案例…

行为型模式-策略模式(一)

今天就说一说设计模式中的策略模式&#xff0c;从名字来讲&#xff0c;意思就是&#xff0c;对应不同的情况&#xff0c;就有一种解决问题的办法&#xff0c;不同的情况&#xff0c;就有不同的应对方法&#xff0c;这就是策略模式&#xff0c;非常的智能化。 也可以参考菜鸟 …

leetcode 876.链表的中间结点(快慢指针问题)

⭐️ 往期相关文章 &#x1f4ab; 链接1&#xff1a;leetcode 206.反转链表 &#x1f4ab; 链接2&#xff1a;leetcode 203.移除链表元素 &#x1f4ab; 链接3&#xff1a;数据结构-手撕单链表代码详解 ⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;链表的中间结点 …

手把手教大家实现 npm 包,并发布 npm 仓库,搭建文档(一)

我就知道你会点进来看看&#xff0c;吹牛逼的&#xff0c;哈哈&#xff0c;不过呢&#xff0c;我正在朝着这个方向前进&#xff0c;希望大家给我鼓励鼓励&#xff0c;希望点击进来小伙伴点点赞&#xff0c;点点关注。 说实话&#xff0c;写这个项目的目的&#xff0c;从我自己…

ModaHub魔搭社区:阿里云CTO周靖人:魔搭社区将成为中国最大的“大模型自由市场”

7月7日消息&#xff0c;阿里云CTO周靖人在上海世界人工智能大会上宣布了阿里云的发展计划。 他表示&#xff0c;阿里云将致力于推动中国大模型生态的繁荣&#xff0c;并为大模型创业公司提供全方位的支持。阿里云魔搭社区已经聚集了180万AI开发者和900多个优质AI模型&#xff0…

springboot---定时任务实现

定时任务 1. scheduled注解实现1.1. 用法1.2. 参数详解1.2.1. cron1.2.2. zone1.2.3. fixedDelay1.2.4. fixedDelayString1.2.5. fixedRate1.2.6. fixedRateString1.2.7. initialDelay1.2.8. initialDelayString 1.3. 示例 1. scheduled注解实现 1.1. 用法 任意类中创建一个方…

ASL-QPSO|改进量子粒子群自适应算法及其实现(Matlab)

作者在前面的文章中介绍了量子粒子群算法&#xff0c;量子粒子群算法不但继承粒子群算法的优点&#xff0c;还有它自身计算模型更加简洁&#xff0c;控制参数更少等更加突出的优势&#xff0c;但依然存在着一定的局限性。 例如也会存在着早熟收敛的问题&#xff0c;随着迭代次数…

金属工件表面粗糙度测量方法概述

引言: 在加工零件等的表面上,存在着不同高低、深度和间隙凹凸等的复杂形状。其中,深度且间隔较小的表面坑洼不平被称为表面粗糙度。 产品外包装、汽车仪表盘或是触摸屏等加工零件表面的“闪闪发亮”“粗糙无光泽”等外观区别,就源自这个表面粗糙度的差异。 此外,拿在手里…

Linux分布式应用 Zabbix监控软件 概述 安装

zabbix 是什么&#xff1f; ●zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 ●zabbix 能监视各种网络参数&#xff0c;保证服务器系统的安全运营&#xff1b;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 ●…

ESP32(掌控板) 内置图片与动画显示

ESP32&#xff08;掌控板&#xff09; 内置图片与动画显示 本程序实现了对Mind的MicroPython库内置的图片和动画的显示。Mind上的MicroPython库由于在显示上采用缓存形式&#xff0c;不易出现屏幕闪烁&#xff0c;但对数字显示的支持较差。本程序通过机械按键进入图片选择界面&…

我的华为玩机技巧携手晤对科技,共探创意玩法与新可能

众所周知&#xff0c;华为作为全球领先的智能手机品牌&#xff0c;一直以来致力于提供最好的用户体验&#xff0c;而“我的华为”App&#xff0c;作为华为设备出厂自带的默认应用之一&#xff0c;为华为用户提供丰富的功能&#xff0c;涵盖HarmonyOS 升级、服务、玩机技巧、花粉…

Django学习笔记

Django学习笔记 初识Django安装Django创建Django项目APP启动Django快速上手再写一个页面templates模板静态文件 模板语法请求和相应登录案例 数据库操作安装第三方模块ORM Django官网 : https://docs.djangoproject.com/en/4.2/Django中文文档参考网站&#xff1a;https://yiyi…