十二、Docker Compose 介绍与安装

学习参考:尚硅谷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.hqwc.cn/news/15001.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LNMP架构及部署、skyuc电影网站部署

目录 一、安装nginx 1、关闭防火墙 2.创建管理nginx用户 3.配置nginx 4.命令优化 5.创建nginx脚本 二、安装mysql数据库 三、安装PHP 1.上传php安装包 2.上传 zend-loader-hph5.6 3.创建用户 四、LNMP平台中部署skyuc电影网站 1.解压 SKYUC.v3.4.2.srouce 2.创建数据…

光场1.0——非聚焦型光场相机

本文概要 本文讲主要从光场硬件结构设计以及软件处理方式的层面来介绍一下光场的相关内容,关于光场的优势和具体应用点并不在本文的主要范围内。 光场1.0 1. 结构原理说明 首先来介绍一下光场相机,那么什么是光场相机呢,光场相机经历了两…

SPEC CPU 2006 在 CentOS 5.0 x86_64 古老系统测试

下载镜像 CentOS 2 3 4 5 6 等历史老版本下载地址 国内镜像地址_hkNaruto的博客-CSDN博客 下载CentOS 5.0 1-7 ISO文件 注意:尝试过下载DVD版本,速度太慢了。还是通过国内镜像下载这几个iso快。 安装虚拟机 VirtualBox 挂载第一个iso,启动…

突破数据边界,开启探索之旅!隐语开源Meetup一周年专场7月22日上海见

小伙伴们,📢「隐语开源一周年 Meetup 」即将来袭!🎉在一周年 Meetup 上,不仅会对隐语 1.0 版本进行详解,还有新鲜出炉的隐语 MVP 部署体验包,让你秒变高手!更有机会与隐私计算行业的…

DAY37:贪心算法(四)跳跃游戏+跳跃游戏Ⅱ

文章目录 55.跳跃游戏思路完整版总结 45.跳跃游戏Ⅱ思路完整版为什么next覆盖到了终点可以直接break,不用加上最后一步逻辑梳理 总结 55.跳跃游戏 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃…

【LeetCode周赛】2022上半年题目精选集——贪心

文章目录 2136. 全部开花的最早一天(贪心)⭐⭐⭐⭐⭐思路代码语法解析:Integer[] id IntStream.range(0, plantTime.length).boxed().toArray(Integer[]::new); 2141. 同时运行 N 台电脑的最长时间(贪心)⭐⭐⭐⭐⭐解…

【大数据实战电商推荐系统】概述版

文章目录 第1章 项目体系框架设计(说明书)第2章 工具环境搭建(说明书)第3章 项目创建并初始化业务数据3.1 IDEA创建Maven项目(略)3.2 数据加载准备(说明书)3.3 数据初始化到MongoDB …

Flink DataStream之Connect合并流

新建类 package test01;import org.apache.flink.configuration.Configuration; import org.apache.flink.streaming.api.datastream.ConnectedStreams; import org.apache.flink.streaming.api.datastream.DataStreamSource; import org.apache.flink.streaming.api.datastre…

UE4 如何设置玩家Character的两个位置和角度之间的切换

问题:玩家Character的角度不能直接去设置其中的Camera角度,因为Camera的角度是由鼠标X/Y移动增量决定的,同时把Camera的角度传给PlayController中的PlayCameraManneger,PlayCameraManneger是所有Pawn类型的Camera视口总管&#xf…

数据库练习

数据库练习 建立三张表,以及表中的联系 由于学生表中存在外键,所以我们需要先创建课程表和班级表 课程表 mysql> create table course(-> course_id int primary key auto_increment comment 课程编号,-> course_name varchar(10) not null…

SpringCloud Alibaba 面试题 微服务相关

Spring Cloud Alibaba 介绍 Spring Cloud Alibaba 与微服务架构是一种分布式架构,它将复杂的应用系统拆分成若干可独立部署、可重复使用的微服务,以实现模块化,可靠性,可部署性的服务架构。 Spring Cloud Alibaba 集成了阿里巴巴…

MySQL数据库对象与数据备份和还原详解

目录 一、视图 1. 什么是视图 2. 视图与数据表的区别 3. 视图的优点 4. 创建视图 二、索引 1. 什么是索引 2. 为什么要使用索引 3. 索引优缺点 4. 何时不使用索引 5. 索引何时失效 6. 索引分类 6.1 普通索引 6.2 唯一索引 6.3 主键索引 6.4 组合索引 三、数据的…