docker compose 容器编排

文章目录

  • 1、docker compose简介
  • 2、下载与安装
    • 2.1、创建指定目录存储docker compose
    • 2.2、下载docker-compose并移动到上面的目录下
    • 2.3、给docker-compose文件赋予可执行权限
    • 2.4、查看docker compose的版本
  • 3、入门案例(使用docker compose部署redis)
    • 3.1、在opt目录下新建文件`docker-compose.yml`
    • 3.2、docker compose相关命令:
      • 3.2.1、启动容器 myredis
      • 3.2.2、查看容器 myredis
      • 3.2.3、删除所有容器 myredis
  • 4、编排Spring Boot项目
    • 4.1、修改opt目录下 `docker-compose.yml`
    • 4.2、启动容器 ebuy-mysql、ebuy-dockerv3.0
    • 4.3、查看容器 ebuy-mysql、ebuy-dockerv3.0

1、docker compose简介

1、Docker Compose是一个工具,用于定义和运行多容器应用程序的工具;

2、Docker Compose通过yml文件定义多容器的docker应用;

3、Docker Compose通过一条命令根据yml文件的定义去创建或管理多容器;

如下图所示:
在这里插入图片描述
Docker Compose 是用来做Docker 的多容器控制,有了 Docker Compose 你可以把所有繁复的 Docker 操作全都一条命令,自动化的完成。

官网地址:https://docs.docker.com/compose/install/linux/

2、下载与安装

# 创建指定目录存储docker compose
mkdir -p /usr/local/lib/docker/cli-plugins# 安装方式1-联网下载:下载docker-compose并移动到上面的目录下: 下载可能会失败!!!!!!
#curl -SL https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
# 安装方式2-通过xshell将课件`资料/day01`目录下的docker-compose 上传到上面的目录下:
# 给docker-compose文件赋予可执行权限
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose# 查看docker compose的版本
docker compose version

2.1、创建指定目录存储docker compose

[root@localhost ~]# mkdir -p /usr/local/lib/docker/cli-plugins
[root@localhost ~]# cd /usr/local/lib/docker/cli-plugins
[root@localhost cli-plugins]# ll
总用量 0
[root@localhost cli-plugins]# 

2.2、下载docker-compose并移动到上面的目录下

在这里插入图片描述

2.3、给docker-compose文件赋予可执行权限

[root@localhost cli-plugins]# sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
[root@localhost cli-plugins]# ll
总用量 43868
-rwxr-xr-x. 1 root root 44920832 927 08:46 docker-compose
[root@localhost cli-plugins]# 

2.4、查看docker compose的版本

[root@localhost cli-plugins]# docker compose version
Docker Compose version v2.14.2

3、入门案例(使用docker compose部署redis)

需求:使用docker compose部署redis

3.1、在opt目录下新建文件docker-compose.yml

内容如下所示:

services:redis:image: redis:latestcontainer_name: myredisports:- "7379:6379"volumes:- redis-data:/data
volumes:redis-data: {}
[root@localhost opt]# vim docker-compose.yml

在这里插入图片描述

3.2、docker compose相关命令:

-f, --file stringArray Compose configuration files

# 启动容器(如果不存在容器就创建、存在则修改)
docker compose -f docker-compose.yml up -d
# 停止所有容器
docker compose -f docker-compose.yml stop# 启动所有容器
docker compose -f docker-compose.yml start# 重启所有容器
docker compose -f docker-compose.yml restart
# 删除所有容器
docker compose -f docker-compose.yml down

docker compose文件中其他的常见指令参考官方文档:https://docs.docker.com/compose/compose-file/05-services/

3.2.1、启动容器 myredis

[root@localhost opt]# docker compose -f docker-compose.yml up -d
[+] Running 3/3⠿ Network opt_default      Created                                                                                                                                                                             1.0s⠿ Volume "opt_redis-data"  Created                                                                                                                                                                             0.0s⠿ Container myredis        Started  

3.2.2、查看容器 myredis

在这里插入图片描述

3.2.3、删除所有容器 myredis

[root@localhost opt]# docker compose -f docker-compose.yml down
[+] Running 2/2⠿ Container myredis    Removed                                                                                                                                                                                 0.3s⠿ Network opt_default  Removed 

4、编排Spring Boot项目

需求:使用docker compose部署 ebuy-docker

4.1、修改opt目录下 docker-compose.yml

内容如下所示:

services:mysql: # 部署mysql:不能使用已存在的容器 新建容器中没有ebuydocker容器需要使用的数据库表,需要我们再次初始化container_name: ebuy-mysqlimage: mysql:8ports:- "5306:3306"volumes:- ebuy-mysql_data:/var/lib/mysql- ebuy-mysql_conf:/etc/mysqlprivileged: trueenvironment:- "MYSQL_ROOT_PASSWORD=1234"ebuy:    # 部署spring boot项目container_name: ebuy-dockerv3.0image: ebuy-docker:v2.0ports:- "8083:8081"
volumes:ebuy-mysql_data: {}ebuy-mysql_conf: {}

4.2、启动容器 ebuy-mysql、ebuy-dockerv3.0

[root@localhost opt]# docker compose -f docker-compose.yml up -d
[+] Running 5/5⠿ Network opt_default           Created                                                                                                                                                                                                                           0.4s⠿ Volume "opt_ebuy-mysql_data"  Created                                                                                                                                                                                                                           0.0s⠿ Volume "opt_ebuy-mysql_conf"  Created                                                                                                                                                                                                                           0.0s⠿ Container ebuy-mysql          Started                                                                                                                                                                                                                           3.0s⠿ Container ebuy-dockerv3.0     Started     

4.3、查看容器 ebuy-mysql、ebuy-dockerv3.0

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

RTE 大会报名丨AI 时代新基建:云边端架构和 AI Infra ,RTE2024 技术专场第二弹!

所有 AI Infra 都在探寻规格和性能的最佳平衡,如何构建高可用的云边端协同架构? 语音 AI 实现 human-like 的最后一步是什么? AI 视频的爆炸增长,给新一代编解码技术提出了什么新挑战? 当大模型进化到实时多模态&am…

算力共享系统中数据平面和控制平面

目录 算力共享系统中数据平面和控制平面 数据平面 控制平面 算力共享系统举例 控制流程和业务流程,在算力共享系统中举例说明 控制流程 业务流程 算力共享系统中数据平面和控制平面 在算力共享系统中,数据平面和控制平面是两个关键组成部分,它们各自承担着不同的角色…

3-2 AUTOSAR RTE对Runnable的作用

返回总目录->返回总目录<- 一、前言 通过RTE给runnable提供触发事件。 runnable是可以被触发的,但是需要通过RTE来实现这个触发和调用runnable通过RTE给runnable提供所需资源。 RTE将runnable需要的一些资源通过接口传输给它(Port的实现)将BSW和SWC做隔绝。 因此OS和r…

2024/10/1 408大题专训之磁盘管理

2021&#xff1a; 2019&#xff1a; 2010&#xff1a;

【C语言】动态内存管理:malloc、calloc、realloc、free

本篇介绍一下C语言中的malloc/calloc/realloc。 使用这些函数需要包含头文件<stdlib.h>。malloc/calloc/realloc申请的空间都是 堆区的。 1.malloc和free 1.1 malloc C语言提供了一个动态内存开辟的函数malloc&#xff0c;函数原型如下。 void* malloc(size_t size);…

【docker学习】Linux系统离线方式安装docker环境方法

centos7-linux安装docker(离线方式) 下载docker的安装文件 https://download.docker.com/linux/static/stable/x86_64/ 下载的是&#xff1a;docker-18.06.3-ce.tgz 这个压缩文件 将docker-18.06.3-ce.tgz文件上传到centos7-linux系统上&#xff0c;用ftp工具上传即可 解压…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.红黑树

1.红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路 径会比其他路径长出俩倍&#xff0c;…

【C++】类与对象(一)

「前言」 &#x1f308;个人主页&#xff1a; 代码探秘者 &#x1f308;C语言专栏&#xff1a;C语言 &#x1f308;C专栏&#xff1a; C &#x1f308;喜欢的诗句:天行健,君子以自强不息. 目录 [一、面向过程和面向对象初步认识][Link 2] 二、类的引入 三、类的定义 四、类…

李宏毅机器学习2022-HW8-Anomaly Detection

文章目录 TaskBaselineReportQuestion2 Code Link Task 异常检测Anomaly Detection 将data经过Encoder&#xff0c;在经过Decoder&#xff0c;根据输入和输出的差距来判断异常图像。training data是100000张人脸照片&#xff0c;testing data有大约10000张跟training data相同…

值传递和引用传递

值传递和引用传递是函数参数传递的两种类型&#xff0c;一般而言&#xff0c;基本数据类型都是值传递&#xff0c;数组和对象采用引用传递减少对象复制开销&#xff0c;但也有特例。 值和引用传递本质一样 值传递是拷贝值到函数参数&#xff0c;引用传递是拷贝引用(或者对象的指…

第十三届蓝桥杯真题Java c组C.纸张尺寸(持续更新)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;蓝桥杯关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 【问题描述】 在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm 841mm&#…

jenkins项目发布基础

随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。Jenkins 自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,…

博弈论(学习笔记)

定义何为最优&#xff01; 最优解是均衡&#xff01;&#xff08;&#xff09; 一次博弈 --- 一面之缘 复杂动态博弈&#xff1b; 路怒症----陌生人&#xff0c;一次性博弈。 一次性博弈最能暴露人性。 重复博弈太压抑了。 沙普利求解合作博弈的著名理论---如何为参与者制定利益…

SQL第11课——使用子查询

11.1 子查询 查询&#xff08;query): 任何SQL语句都是查询&#xff0c;但此术语一般指select语句。 select语句是SQL的查询&#xff0c;迄今为止所有的select语句都是简单查询&#xff0c;即从单个数据库表中检索数据的单条语句。 SQL还允许创建子查询&#xff08;subquer…

浪 得 虚 名 ?RAG接入知识图谱!全局数据关系表示!指哪打哪!

在学知识图谱系列的朋友就知道&#xff01; 知识图谱RAG&#xff01;最大优势&#xff1a; 全局数据关系表示&#xff01; 相似文本散落在–>不规则不相邻文本块&#xff01; 传统RAG只能找到top-k个文本块&#xff0c;一旦文本块过多&#xff0c;超出llm上下文限制&…

uni-app canvas文本自动换行

封装 支持单行文本超出换行。多行文本顺位排版 // 填充自动换行的文本function fillFeedText({ctx, text, x, y, maxWidth, lineHeight, color, size}) {// 文本配置ctx.setFontSize(size);ctx.setFillStyle(color);// 计算文本换行宽高&#xff0c;换行逻辑const words text…

C++里的随机数

想用C做最基础的猜数字,肯定少不了随机数; srand(unsigned(time(NULL))); rand() //是生成一个随机数 rand()%1001//就是一个从一到一百的随机数 合体: #include <iostream> #include <cstdlib> #include <time.h> int main() { int g 0; while (g < …

虚拟机、ubantu不能连接网络,解决办法

虚拟机、ubantu不能连接网络&#xff0c;解决办法 物理机OS&#xff1a; [Windows10 专业版](https://so.csdn.net/so/search?qWindows10 专业版&spm1001.2101.3001.7020) 虚拟机平台&#xff1a; VMware Workstation 16 Pro 虚拟机OS&#xff1a; Ubuntu 18.04 自动配…

pip install kaggle-environments ISSUE:Failed to build vec-noise

ISSUE: error: Microsoft Visual C 14.0 or greater is required. Get it with “Microsoft C Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/ [end of output]Failed to build vec-noiseC:\ProgramData\miniconda3\include\pyconfig.h(59): fat…

新农人的求索:既要种菜,也要种钱

澎湃新闻记者 何惠子 灯下立着一个玻璃瓶&#xff0c;内里空无一物&#xff0c;清晰透亮。 一只手握住瓶身。“就像这个瓶子。前途一片光明&#xff0c;但其实都在瓶子里。” 解晓巍说的是音乐——他曾梦想以此维生。事实上&#xff0c;这也适合描述农业。 在没有任何收入的202…