安装使用docker-compose

news2024/12/23 18:36:12

Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排

Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡。

Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。

使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独的应用容器。在工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目,除了Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。

Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理。

如果你想看中文API,可以看看知乎的这篇文章,个人感觉很不错,不过里面demo比较少,没有基础的话看起来可能比较吃力

这篇文章中有demo,点击即可

linux上面通过curl下载,下载的是一个文件,不是目录,一个二进制文件。注意要放在/usr/local/bin目录下,自动配置环境变量

// 下载 1.25.5这个是版本号,你自己可以改
sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

// 给权限
sudo chmod +x /usr/local/bin/docker-compose

// 检测是否安装成功
docker-compose -v

编写我们的第一个docker-compose.yml,如下

version: "3.0"
services:
  #使用的服务,这里要指定唯一的名字或者ID等
  tomcat:
    #镜像是谁,我这里是tomcat:jre8,记得替换了
    image: tomcat:jre8
    #端口映射是多少
    ports:
     - 8080:8080

在这里插入图片描述

运行一个docker-compose

// 启动这个项目的所有服务 必须保证运行命令的目录存在docker-compose.yml
docker-compose up

在这里插入图片描述

编写多个tomcat,tomcat启动的不同,里面的tomcat前面的颜色不一样

version: "3.0"
services:
  #使用的服务,这里要指定唯一的名字或者ID等
  tomcat:
    #镜像是谁,我这里是tomcat:jre8,记得替换了
    image: tomcat:jre8
    #端口映射是多少
    ports:
     - 8080:8080
  # 这里名字改了ports端口映射也改了就行
  tomcat01:
    image: tomcat:jre8
    ports:
     - 8081:8080

在这里插入图片描述

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

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

相关文章

【单周期CPU】LoongArch | LA32R | 二选一控制器MUX | 数据通路

前言:本章内容主要是演示在vivado下利用Verilog语言进行单周期简易CPU的设计。一步一步自己实现模型机的设计。本章先介绍单周期简易CPU中数据通路的设计。 💻环境:一台内存4GB以上,装有64位Windows操作系统和Vivado 2017.4以上版…

华为OD机试真题 Java 实现【矩阵中非1的元素个数】【2023 B卷 200分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明先将[0,0]位置的值变为1。第一次同化:第二次同化: 大家好,我是哪吒。 一、题目描述 存在一个m*n的二维数组,其成员取…

小程序项目时间选择器用法

项目需求是要实现这种形式, 但是相信大家都试了各种插件,都不太合适,uView框架也不能满足自己的需要; 推荐使用:uview-ui-plus 基本上小程序遇到的单选多选 日期 省市区 都可以完美的实现,可以通过插件市场安装使用 但是要实现ui给的原型图 还需要做一下调整 弹性布局给两个选…

Linux查找关键字出现的位置

在Linux中,您可以使用以下命令来查找文件中关键字出现的位置: grep -rnw /path/to/search -e keyword其中: - -r 递归地搜索指定路径下的所有子目录。 - -n 显示匹配行的行号。 - -w 完整匹配单词,而不是部分匹配。 - /path/to/s…

pandas 重复数据处理详解

概要 重复值处理主要涉及两个部分,一个是找出重复值,第二个是删除重复值,也就是根据自己设定的条件进行删除操作。本次来介绍关于重复数据处理的几个常用方法。 定位重复值 对于重复值,我们首先需要查看这些重复值是什么样的形式…

LFU算法的详细介绍与实现

LRU 算法的淘汰策略是 Least Recently Used,也就是每次淘汰那些最久没被使用的数据;而 LFU 算法的淘汰策略是 Least Frequently Used,也就是每次淘汰那些使用次数最少的数据。 LRU 算法的核心数据结构是使用哈希链表 LinkedHashMap&#xff…

spring全家桶(一):如何创建springboot项目

一.如何创建springboot项目 1.通过官网网站创建项目:https://start.spring.io/ 2.eclipse通过插件Spring Tool Suite(sts)创建项目 3.idea默认已经有spring插件 二.程序入口 SpringBootApplication public class HelloApplication {public static void main(Strin…

Linux--获取当前进程的父进程PID(即PPID)

方法一&#xff1a;编程法 #include <sys/types.h>pid_t ppidgetppid(); 方法二&#xff1a;指令法 ps axj | head -1 && ps axj | grep 当前进程PID 注&#xff1a;你会发现&#xff0c;每次查看当前进程PID时&#xff0c;PID都不相同&#xff0c;但是它的P…

设计模式——原型模式

原型模式比较简单&#xff0c;本质就是将一个设置好一部分公共属性的对象进行克隆&#xff0c;产生出大量的对象&#xff0c;再对每个对象进行相应的个性化处理需要注意的是&#xff1a;对象克隆时&#xff0c;如果其成员变量中存在引用类型&#xff08;数组、引用对象等&#…

《人工智能.一种现代方法》原版精读思维导图-第二章

目录 书籍 相关 2. Intelligent Agents 2.1 Agents and Environments 2.2 Good Behavior: The Concept of Rationality 2.3 The Nature of Environments 2.4 The Structure of Agents summary 书籍 人工智能.一种现代方法 Artificial Intelligence. The Modern Appro…

基于LLM大模型开发Web App生成器

随着越来越多的代码生成模型公开可用&#xff0c;现在可以以我们以前无法想象的方式进行文本到网络甚至文本到应用程序。 本教程介绍了一种通过流式传输和渲染内容来生成 AI Web 内容的直接方法。 推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景。 1、在 Node 应用程序中…

13 个最佳免费 PDF 编辑器清单

您正在寻找一款真正免费的 PDF 编辑器&#xff0c;不仅可以编辑和添加文本&#xff0c;还可以更改图像、添加您自己的图形、签署您的名字、填写表格等等&#xff1f;您来对地方了&#xff1a;我研究了这些类型的应用程序&#xff0c;以得出您正在寻找的内容的列表。 其中一些是…

element 表格套输入框

实现效果&#xff1a; 编辑&#xff1a; 查看&#xff1a;点击平台补贴展示弹窗 <el-table:data"tableData"border:header-cell-style"{background:#D7D7D7,color:#000}"style"width: 100%"row-dblclick"dbclick":cell-class-name…

c++中的时间处理(3)与sleep相关的时间函数

1、Sleep()函数 头文件&#xff1a; Windows下为&#xff1a;windows.h Linux下为&#xff1a;unistd.h 注意&#xff1a; &#xff08;1&#xff09;Sleep是区分大小写的&#xff0c;有的编译器是大写&#xff0c;有的是小写。 &#xff08;2&#xff09;Sleep括号里的时间&…

ELK中grok插件、mutate插件、multiline插件、date插件的相关配置

目录 grok 正则捕获插件 自定义表达式调用 mutate 数据修改插件 示例&#xff1a; ●将字段old_field重命名为new_field ●添加字段 ●将字段删除 ●将filedName1字段数据类型转换成string类型&#xff0c;filedName2字段数据类型转换成float类型 ●将filedName字段中…

Nginx调优和探活配置

Nginx基本参数优化 1 . worker_processes 1; # 指定 Nginx 要开启的进程数&#xff0c;结尾的数字就是进程的个数&#xff0c;可以为 auto。 这个参数调整的是 Nginx 服务的 worker 进程数&#xff0c;Nginx 有 Master 进程和 worker 进程之分&#xff0c;Master 为管理进程、真…

Web常见请求参数接收的总结

首先本文所展示的参数接收的总结&#xff0c;都是基于Spring Boot框架而言的&#xff0c;不是一般传统方式使用request对象来完成参数的接收 简单参数的接收 对于简单参数的接收&#xff0c;在Spring Boot框架中&#xff0c;在Controller类中设置对应的处理方式时&#xff0c;…

SpringMVC 中的数据验证如何使用 @Valid 注解

SpringMVC 中的数据验证如何使用 Valid 注解 在 Web 开发中&#xff0c;数据验证是一个非常重要的环节。它可以确保数据的合法性和正确性&#xff0c;保护系统不受到恶意攻击或用户误操作的影响。在 SpringMVC 中&#xff0c;我们可以使用 Valid 注解来实现数据验证。 Valid 注…

排序算法第二辑——选择排序

一&#xff0c;选择排序 选择排序算是简单排序中的渣渣&#xff0c;这种算法基本上是没有什么用处的。但是作为一个初学者&#xff0c;我又必须要会写这种算法。这种算法的实现实现思想和它的名字一样&#xff0c;就是在一个范围内选择最大或者最小的数据然后再交换数据实现排序…

山西电力市场日前价格预测【2023-07-13】

日前价格预测 预测明日&#xff08;2023-07-13&#xff09;山西电力市场全天平均日前电价为342.42元/MWh。其中&#xff0c;最高日前电价为403.93元/MWh&#xff0c;预计出现在00: 15。最低日前电价为282.08元/MWh&#xff0c;预计出现在24: 00。 价差方向预测 1&#xff1a;实…