CentOS7上下载安装 Docker Compose

news2024/10/28 1:13:39

Docker Compose简要介绍(想直接看安装步骤的请跳转到[必要的安装步骤])

Docker Compose 是一个用于定义和管理多容器 Docker 应用的工具,它可以通过一个简单的 YAML 文件(docker-compose.yml)来配置应用程序的服务、网络和存储等内容,并通过一条命令来启动、停止和管理多个容器。

Docker Compose的主要功能:
  1. 简化多容器应用的管理

    • 通过 docker-compose.yml 文件,开发者可以定义一组相关联的容器,例如数据库、后端服务、前端服务等。
    • 只需使用一条 docker-compose up 命令,就可以启动这些容器,并且可以自动处理它们之间的网络连接和数据卷。
  2. 定义服务、网络、存储

    • Docker Compose 允许你在 docker-compose.yml 中定义应用的服务(如 web、db)、网络和存储卷,所有配置都集中在一个文件中,便于管理。
  3. 环境隔离

    • 可以为每个项目创建独立的环境,避免不同项目间的依赖冲突。不同的应用或环境可以在不同的 Docker Compose 项目中独立运行。
  4. 扩展性

    • 可以轻松扩展某个服务的实例数。例如,如果需要扩展 web 服务的处理能力,可以简单调整实例数量:docker-compose up --scale web=3

docker-composedocker compose 的区别:

  • docker-compose(v1.x 版本)

    • 是一个独立的二进制文件,用于管理多容器应用。
    • 使用的是命令 docker-compose
  • docker compose(v2.x 版本)

    • 是作为 Docker CLI 插件引入的,直接内置到 Docker 工具链中,官方推荐使用。
    • 使用的是命令 docker compose(没有连字符),并且相比 v1 版本有更好的性能和集成。

常用命令:

  • 启动所有服务:

    docker-compose up
    
  • 在后台启动服务(使用 -d 表示守护模式):

    docker-compose up -d
    
  • 停止并移除所有容器:

    docker-compose down
    
  • 查看当前运行的容器:

    docker-compose ps
    
  • 查看日志:

    docker-compose logs
    

docker-compose.yml 示例:

version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - db-data:/var/lib/mysql
volumes:
  db-data:

这个文件定义了两个服务:web(使用 Nginx)和 db(使用 MySQL),并且将 MySQL 数据存储在一个名为 db-data 的 Docker 卷中。

总结来说,Docker Compose 是一个强大且简化 Docker 多容器应用管理的工具,特别适用于开发、测试和小型生产环境。


必须的安装步骤:

  1. 安装 Docker Compose

    • 下载 Docker Compose 二进制文件:

      sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      

      1.29.1为版本号,按自己的需要来选择就好,新手如果不知道怎么选,可以参考后文的下载版本的选择部分的内容

    • 赋予可执行权限:

      sudo chmod +x /usr/local/bin/docker-compose
      
    • 测试安装是否成功:

      docker-compose --version
      

    至此,就完成了 Docker Compose 的安装过程。

  2. (可选)Docker 开启远程访问

    • 修改 Docker 服务配置,使其允许通过 TCP 2375 端口进行远程访问:

      vim /lib/systemd/system/docker.service
      

      注释掉原来的 ExecStart 行,并新增以下行:

      ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
      
    • 更新配置并重新启动 Docker:

      systemctl daemon-reload
      systemctl restart docker
      
    • 开放 2375 端口并检查:

      firewall-cmd --add-port=2375/tcp --permanent
      firewall-cmd --reload
      firewall-cmd --query-port=2375/tcp
      

    这些步骤是可选的。Docker Compose 并不强制要求 Docker 远程访问开启。如果你要在本地使用 Docker Compose,远程访问配置是 不必要 的。但是,如果你的 Docker Compose 部署涉及到多个主机之间的交互(例如在远程主机上运行容器),则需要开启 Docker 远程访问。

总结:

  • 必须步骤:下载 Docker Compose 二进制文件、赋予执行权限、测试安装。
  • 可选步骤:开启 Docker 的远程访问(如果你需要在远程主机上控制 Docker)。

如果你只是本地使用 Docker Compose,完全可以跳过 Docker 远程访问配置步骤。


下载版本的选择

选择 Docker Compose 版本时,通常推荐使用最新稳定版本,以确保你获得最新的功能和 bug 修复。具体选择版本时可以参考以下几点:

1. 最新稳定版本

Docker Compose 的最新版本可以提供最好的兼容性和功能。你可以通过访问 Docker Compose 的 GitHub Releases页面 来查看最新的版本。目前,官方建议使用的版本是 v2.x 系列,这是因为:

  • v2.x 引入了性能和功能改进,并且是未来的主要更新方向。
  • 最新版本修复了之前版本的已知问题,增强了与 Docker 引擎的兼容性。

可以通过以下命令安装最新的 v2 版本(以 2.21.0 为例,具体的版本号可以查看 GitHub):

sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2. 稳定性和项目需求

  • 最新版本(v2.x)通常推荐用于新项目,因为它包含了性能改进、功能增强以及更好的与 Docker 引擎的整合。
  • 旧版本(如 v1.29.x)可以用于已存在的项目,特别是如果你当前的项目或者 CI/CD 环境是基于 v1 版本构建的,可以继续使用 v1.29.2,这是 v1.x 系列的最终稳定版本。

3. v2 版本与 v1 的差异

Docker Compose v2 相比 v1.x 系列有了一些显著的变化:

  • Docker Compose v2 作为 Docker CLI 插件的一部分,使用 docker compose(而不是 docker-compose)命令来执行。
  • 提供了与 Docker Desktop 更好的集成,特别是针对 Windows 和 macOS 用户。
  • 更好的性能和资源管理,特别是在大规模编排的场景下。

推荐选择

  • v2.x:推荐安装最新的 v2.x 版本(比如 v2.21.0),适用于绝大部分新项目和环境。
  • v1.29.x:如果你的项目依赖于 v1 版本,并且暂时不考虑迁移到 v2,可以使用 v1.29.2,这是 v1 系列的最后一个版本。

安装 v2 最新版本的命令:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

升级注意事项

  • 迁移到 v2 时,注意 docker-compose 命令可以直接使用,但官方推荐使用 docker compose 作为命令格式。

谢谢观看! 希望能对你有所帮助。

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

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

相关文章

【了解一下静态代理与动态代理】

文章目录 一.什么是静态代理与动态代理二.静态代理三.动态代理1.jdk动态代理2.cglib动态代理 四.小结 一.什么是静态代理与动态代理 什么是代理?代理是一种设计模式,在这种模式中,一个类(代理类)代表另一个类&#xff…

【ArcGIS Pro实操第8期】绘制WRF三层嵌套区域

【ArcGIS Pro实操第8期】绘制WRF三层嵌套区域 数据准备ArcGIS Pro绘制WRF三层嵌套区域Map-绘制三层嵌套区域更改ArcMap地图的默认显示方向指定数据框范围 Map绘制研究区Layout-布局出图 参考 本博客基于ArcGIS Pro绘制WRF三层嵌套区域,具体实现图形参考下图&#xf…

cloak斗篷伪装下的独立站

随着互联网的不断进步,越来越多的跨境电商卖家开始认识到独立站的重要性,并纷纷建立自己的独立站点。对于那些有志于进入这一领域的卖家来说,独立站是什么呢?独立站是指个人或小型团队自行搭建和运营的网站。 独立站能够帮助跨境…

C++ 模板编程:解锁高效编程的神秘密码

快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 目录 💯前言 💯泛型编程 💯函数模板 1.函数模板概念 2.函数模板格式 3.函数模板的原理 4.函数模板的实例化 5.模板参…

如何使用DBeaver连接flink

通过DBeaver配置并连接flink: 1. 打开Dbeaver,选择“数据库”--》“数据库驱动管理器” 2.在驱动管理器界面点击新建按钮 3.在新建弹窗输入flink相关的驱动信息,主要包括: org.apache.flink.table.jdbc.FlinkDriver jdbc:flink…

Spring+ActiveMQ

1. 环境搭建 1.1 env-version JDK 1.8 Spring 2.7.13 Maven 3.6 ActiveMQ 5.15.2 1.2 docker-compose.yml version: 3.8services:activemq:image: rmohr/activemq:5.16.3container_name: activemqports:- "61616:61616"- "8161:8161"environment…

图解:什么是多租户?

大家好,我是汤师爷~ 什么是多租户? 多租户是SaaS(软件即服务)领域里特有的一个概念。在SaaS服务中,“租户”指的就是使用这个SaaS系统的客户。 那么租户和用户有什么区别呢?举个例子。假设你正在使用一款…

SQL实战训练之,力扣:1532最近的三笔订单

目录 一、力扣原题链接 二、题目描述 三、建表语句 四、题目分析 五、SQL解答 六、最终答案 七、验证 八、知识点 一、力扣原题链接 1532. 最近的三笔订单 二、题目描述 客户表:Customers ------------------------ | Column Name | Type | --------…

【C++单调栈 贡献法】907. 子数组的最小值之和|1975

本文涉及的基础知识点 C单调栈 LeetCode907. 子数组的最小值之和 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。 由于答案可能很大,因此 返回答案模 109 7 。 示例 1&#x…

ArcGIS计算多个面要素范围内栅格数据各数值的面积

本文介绍在ArcMap软件中,基于面积制表工具(也就是Tabulate Area工具),基于1个面要素数据集与1个栅格数据,计算每一个面要素中各栅格数据分布面积的方法。 首先,来看一下本文的需求。现有一个矢量面的要素集…

动态规划 —— 斐波那契数列模型-解码方法

1. 解码方法 题目链接: 91. 解码方法 - 力扣(LeetCode)https://leetcode.cn/problems/decode-ways/description/ 2. 题目解析 1. 对字母A - Z进行编码1-26 2. 11106可以解码为1-1-10-6或者11-10-6, 但是11-1-06不能解码 3. 0n不能解码 4. …

springboot项目测试环境构建出的依赖包比本地构建出的依赖包多

本地能够正常启动服务,但是测试环境启动报错。 上述druid是服务pom文件中之前引入的依赖包,后续由于某种原因而不需要该依赖包了,故已在pom文件中移除掉了该依赖包。 移除该依赖包之后,本地服务可正常构建和启动。 而测试环境却…

C语言 | Leetcode C语言题解之第504题七进制数

题目&#xff1a; 题解&#xff1a; char * convertToBase7(int num){if (num 0) {return "0";}bool negative num < 0;num abs(num);char * digits (char *)malloc(sizeof(char) * 32);int pos 0;while (num > 0) {digits[pos] num % 7 0;num / 7;}if…

cm211-1刷机教程镜像包

cm211-1刷机教程 包含镜像包酷看桌面 s905l3-l3b通用 镜像包&#xff1a;https://www.123684.com/s/WGAwjv-5tlv3 1.刷机教程 镜像为线刷镜像包&#xff0c;需要短接刷机 短接刷机&#xff0c;导入镜像包 开始即可。到100%就证明可以了。

四期书生大模型实战营(【入门岛】- 第4关 | 玩转HF/魔搭/魔乐社区)

文章目录 1. 任务介绍闯关任务 2. 平台介绍2.1. HF 平台2.1.1. HF的Transformers库介绍 2.2. GitHub CodeSpaces 和 Hugging Face Spaces 介绍。2.2.1. GitHub CodeSpaces2.2.2. Hugging Face Spaces2.2.3. 总结 3. 模型下载3.1. GitHub CodeSpaces使用3.1.下载internlm2_5-7b-…

MySQL任意版本安装卸载和数据库原理图绘制

MYSQL任意版本安装和卸载 安装&#xff1a; 1、解压文件 --- 不能出现中文路径 2、在解压目录&#xff08;安装目录&#xff09;下&#xff1a; 1>.创建data文件夹 2>.创建配置文件my.txt 然后修改成ini格式 3、修改配置文件 basedirD:\\mysql\\mysql-5.7.28-winx64…

006:看图软件ACDSeePhotoStudio2019安装教程

摘要&#xff1a;本文主要介绍看图软件ACDSee Photo Studio2019的安装流程。 一、软件概述 ACDSee Photo Studio是ACDSee公司开发的一款面向摄影师和图像编辑者的专业软件。它提供了全面的图像处理、管理和发布功能&#xff0c;帮助用户高效地浏览、编辑、分类和分享数字照片。…

新160个crackme - 084-slayer_crackme1

运行分析 点击check&#xff0c;提示注册失败 PE分析 ASM程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 ida搜索到关键字符串发现注册文件reg.key 通过动态调试&#xff0c;获得计算机名称为’CONCEALBEAR’通过计算得到int_2 接下来有一个剪贴板判断&#xff0…

从“摸黑”到“透视”:AORO A23热成像防爆手机如何改变工业检测?

在工业检测领域&#xff0c;传统的检测手段常因效率低下、精度不足和潜在的安全风险而受到诟病。随着科技的不断进步&#xff0c;一种新兴的检测技术——红外热成像技术&#xff0c;正逐渐在该领域崭露头角。近期&#xff0c;小编对一款集成红外热成像技术的AORO A23防爆手机进…

【Linux系统】Ubuntu的简单操作

什么是 Ubuntu&#xff1f; Ubuntu&#xff08;乌帮图&#xff09;是一个非洲词汇&#xff0c;它的意思是“人性对待他人”或“群在故我在”。Ubuntu发行版将Ubuntu精神带到软件世界之中。 目前已有大量各种各样基于GNU/Linux的操作系统&#xff0c;例如:Debian,SuSE,Gentoo,R…