当前位置: 首页 > 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…...

基于LM22678的树莓派硬盘专用电源设计:解决供电不稳与电流冲击

1. 项目概述:为什么我们需要一个“专用”电源?如果你正在用树莓派搭配一块机械硬盘搭建一个家庭服务器或者个人云存储,可能已经遇到了一个不大不小的麻烦:供电不稳。树莓派官方推荐的5V/3A电源,单独带树莓派4B跑满负载…...

自制BLE112串口编程器:基于Bootloader的免调试器烧录方案

1. 项目概述:为BLE112模块打造一款免调试器的RS232编程器在嵌入式开发,特别是早期的蓝牙低功耗(BLE)模块应用中,我们常常会遇到一个棘手的问题:官方开发工具链的依赖和限制。以Silicon Labs(当时…...

DeepSeek基准测试避坑手册:92%开发者忽略的4大陷阱——硬件配置偏差、tokenizer不一致、batch size幻觉、温度值污染

更多请点击: https://codechina.net 第一章:DeepSeek基准测试避坑手册:92%开发者忽略的4大陷阱——硬件配置偏差、tokenizer不一致、batch size幻觉、温度值污染 硬件配置偏差:GPU显存与计算精度的隐性干扰 在A100(8…...

Python基础语法:常用内置函数

round():四舍五入 # 省略 ndigits print(round(3.14)) # 输出 3(int) print(round(3.66)) # 输出 4# 指定 ndigits print(round(3.14159, 2)) # 输出 3.14(float) print(round(3.666, 2)) # 输出 3.67# …...

孤舟笔记 互联网常用框架篇三 Dubbo是如何动态感知服务下线的?注册中心和服务端双保险

文章目录先说结论机制一:注册中心通知机制二:心跳检测机制三:连接事件感知机制四:定时拉取四种机制的协作回答技巧与点评加分回答面试官点评个人网站微服务环境下,服务实例随时可能上下线——重启、扩容、宕机……调用…...

网络配置工具类详解

CNet 网络配置工具类详解平台:仅支持 Linux,大量使用 ioctl 系统调用一、概述 CNet 是一个 纯静态方法的网络配置工具类,封装了 Linux 下常用的网络操作:功能类别涵盖内容IP 地址读取/设置本机 IP、子网掩码网关读取/添加/删除/设…...

Taotoken的审计日志功能为企业API安全与合规管理提供支持

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken的审计日志功能为企业API安全与合规管理提供支持 当企业决定将大模型能力集成到内部业务流程中时,IT管理员和安…...

Autodesk Fusion 360在Linux上的技术实现与性能优化深度解析

Autodesk Fusion 360在Linux上的技术实现与性能优化深度解析 【免费下载链接】Autodesk-Fusion-360-for-Linux This is a project, where I give you a way to use Autodesk Fusion 360 on Linux! 项目地址: https://gitcode.com/gh_mirrors/au/Autodesk-Fusion-360-for-Linu…...

从无线破解到PDF解密:盘点那些容易被忽略的‘非主流’密码审计场景与工具

密码安全审计的隐秘战场:从无线网络到加密文档的实战指南 当大多数人谈论密码安全时,脑海中浮现的往往是服务器登录、数据库访问这些企业级场景。然而在数字生活的每个角落,从家庭Wi-Fi到工作文档,密码保护的脆弱性同样可能成为安…...

昇腾CANN elec-ops-simulation 实战:电力系统仿真——潮流计算与暂态稳定分析在 NPU 上的加速

电力系统仿真&#xff1a;500 节点电网的牛顿-拉夫逊潮流计算 → 解 10001000 稀疏雅可比矩阵&#xff08;每迭代 1 次矩阵求逆&#xff09;→ CPU 迭代 15 次 2.4s。实时调度要求 < 100ms → NPU 加速&#xff1a;雅可比矩阵求解用 Cube 单元做批量小矩阵 LU 分解 → 每迭…...