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

CentOS7上下载安装 Docker Compose

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: nginxports:- "80:80"db:image: mysqlenvironment:MYSQL_ROOT_PASSWORD: examplevolumes:- 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 作为命令格式。

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

相关文章:

CentOS7上下载安装 Docker Compose

Docker Compose简要介绍(想直接看安装步骤的请跳转到[必要的安装步骤]) Docker Compose 是一个用于定义和管理多容器 Docker 应用的工具,它可以通过一个简单的 YAML 文件(docker-compose.yml)来配置应用程序的服务、网…...

虚拟机的 NAT 模式 或 Bridged 模式能够被外界IPping通

如果虚拟机使用的是 NAT 模式 或 Bridged 模式,通常可以让外部网络(例如互联网)访问虚拟机。NAT 和 Bridged 模式的不同之处在于它们如何将虚拟机连接到宿主机和外部网络。以下是这两种模式的详细说明: 1. NAT 模式 在 NAT 模式…...

C# 使用Dll的几种方法举例

使用 DLL(动态链接库)是 C# 开发中常见的任务之一。DLL 文件包含可以在运行时加载的代码和数据,允许程序共享功能和资源,降低程序的内存占用并促进代码的复用。本篇文章将深入探讨 C# 中使用 DLL 的多种方法,并提供相关…...

什么是不同类型的微服务测试?

大家好,我是锋哥。今天分享关于【什么是不同类型的微服务测试?】面试题?希望对大家有帮助; 什么是不同类型的微服务测试? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 微服务架构中的测试可以分为多种类…...

Docker 拉取镜像时配置可用镜像源(包含国内可用镜像源)

在/etc/docker/daemon.json中写入如下内容(如果文件不存在请新建该文件): { "registry-mirrors":["https://registry.docker-cn.com"] } 重新加载 json 配置文件: sudo systemctl daemon-reload重启 docker 服务: sud…...

International Symposium on Artificial Intelligence Innovations

计算机科学(Computer Science): 算法、自动化软件工程、生物信息学和科学计算、计算机辅助设计、计算机动画、计算机体系结构、计算机建模、计算机网络、计算机安全、计算机图形学与图像处理、数据库与数据挖掘、数据压缩、数据加密、数字信号…...

Golang笔记_day10

Go面试题(三) 1、什么是channel,为什么它可以做到线程安全 在Go语言中,channel是一种类型,它可以用来在协程之间传递数据通过共享内存来通信: 通过共享内存来通信是指多个线程或进程直接访问相同的内存区域…...

mlir learn

https://github.com/j2kun/mlir-tutorial 学习这个项目 https://www.jeremykun.com/2023/08/10/mlir-getting-started/ get start 用我的mac编译一下试试看 然后遇到架构不对的问题 因为他的提交默认是x86 https://github.com/j2kun/mlir-tutorial/pull/1/commits/5a267e269d57…...

Windows安装RabbitMQ 4.0.2(图文教程)

本章教程,主要记录在Windows 10上RabbitMQ 4.0.2的安装过程。 一、下载安装包 1、官方下载(速度不稳定) Erlang:https://github.com/erlang/otp/releases/download/OTP-26.0/otp_win64_26.0.exe RabbitMQ 4.0.2:https://github.com/rabbitmq/rabbitmq-server/releases/do…...

分布式系统中为什么需要使用消息队列

本文转载自 linkedkeeper.com 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ&#…...

Linux环境配置(学生适用)

1.挑选最便宜的云服务器 如腾讯云服务器,华为云服务器,百度云服务器等等…… 2.找到你的云服务器实例,然后找到你的公网IP。 3.云服务器实例 ---更多 --- 重置root密码 (一定要重置) 4. 下载并安装 xshell 或者其他登陆软件 xshel…...

麦禾软件:Mac用户找免费开源工具的最佳选择

抖知书老师推荐: ​麦禾软件已经成为众多Mac用户的必备平台,尤其对于那些经常寻找免费、开源、正版软件的用户来说,绝对是一个福音。随着科技的不断进步和用户需求的提升,安全、便捷的软件下载体验成为用户选择平台的核心标准。而…...

OpenCV4.8 开发实战系列专栏之 08 - 通道分离与合并

大家好,欢迎大家学习OpenCV4.8 开发实战专栏,长期更新,不断分享源码。 专栏代码全部基于C 与Python双语演示,专栏答疑群 请联系微信 OpenCVXueTang_Asst 本文关键知识点: OpenCV中默认imread函数加载图像文件&#…...

iOS 18.1 RC 版本发布,修复iPhone16随机重启、浏览视频卡顿等bug

今日,苹果发布 iOS 18.1 RC 版本升级,内部版本号为 22B82。 iOS 18.1 RC 也就是 iOS 18.1 准正式版,如果没有大的 Bug,这将是 iOS 18.1 正式版发布前最后一次更新,正式版预计下周向消费者推送。 该 RC 版除了为海外用…...

安装buildkit,并使用buildkit构建containerd镜像

背景 因为K8s抛弃Docker了,所以就只装了个containerd,这样就需要一个单独的镜像构建工具了,就用了buildkit,这也是Docker公司扶持的,他们公司的人出来搞的开源工具,官网在 https://github.com/moby/buildkit 简介 服务端为buildkitd,负责和runc或containerd后端连接干活,目前…...

maven jar包二进制文件 invalid stream header: EFBFBDEF 的错误

背景: 将jasper模板文件导入jar包后,生成文件报错 org.springframework.core.io.Resource resource new ClassPathResource("/template/XXXX.jasper");jasperPrint JasperFillManager.fillReport(resource.getInputStream(), paramentMap, …...

Git绑定Gitee或Github以及Git面试常见题

1.绑定Git或Gitee Git绑定Gitee或GitHub的过程相对简单,以下是详细的步骤说明: 一、绑定Gitee仓库 在Gitee上创建仓库 登录Gitee官网,点击首页右上角的“”号,选择“新建仓库”。在新建仓库页面,输入仓库的名称、描述…...

值得细读的8个视觉大模型生成式预训练方法

写在前面 大语言模型的进展催生出了ChatGPT这样的应用,让大家对“第四次工业革命”和“AGI”的来临有了一些期待,也作为部分原因共同造就了美股2023年的繁荣。LLM和视觉的结合也越来越多:比如把LLM作为一种通用的接口,把视觉特征…...

go 包相关知识

在Go语言中,包的引用和搜索路径是由环境变量GOPATH和GO111MODULE共同决定的。 GOPATH环境变量:这个变量定义了默认的工作目录,Go命令行工具将会在这个目录下查找包文件。这个目录通常包含三个子目录:src、bin和pkg。 src目录包含…...

机器学习:opencv--人脸检测以及微笑检测

目录 前言 一、人脸检测的原理 1.特征提取 2.分类器 二、代码实现 1.图片预处理 2.加载分类器 3.进行人脸识别 4.标注人脸及显示 三、微笑检测 前言 人脸检测是计算机视觉中的一个重要任务,旨在自动识别图像或视频中的人脸。它可以用于多种应用&#xff0…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...