docker之Compose与DockerSwarm

目录

Compose

简介

概念

为什么需要?

配置字段

常用命令

安装

1.下载

2.授权

使用

1.创建文件

2.启动

docker Swarm

关键概念

调度策略

spread

binpack

random

特性

集群部署

1.准备

2.创建swarm并添加节点

在主服务器上创建swarm集群

节点加入集群

查看节点信息


Compose

简介

        Docker Compose是一个用于定义和运行多个Docker容器的工具。它允许用户使用YML文件来配置应用程序需要的所有服务,然后使用一个命令,就可以从YML文件配置中创建并启动所有服务。Docker Compose简化了Docker容器的管理和部署过程,使容器管理变得更加高效和可靠

概念

docker-compose将所管理的容器分为三层:工程、服务、容器

        工程:docker-compose运行目录下的所有文件(docker-compose.yml文件、extends文件或环境变量等)组成一个工程,如无特殊指定,工程名即为当前目录名

        服务:可以包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖

        容器:一个服务中可以包括多个容器实例,docker-compose并没有解决负载均衡的问题

docker-compose的工程配置文件默认为docker-compose.yml

为什么需要?

就是来管理多个容器的,定义启动顺序的,合理编排,方便管理

配置字段

常用命令

运行这些命令需要结合docker-compose一起使用。

且必须要在含有docker-compose.yml文件的目录中才可以使用,不然报错

  • docker-compose up:启动Compose服务。
  • docker-compose start:重新启动已停止的Compose服务。
  • docker-compose stop:停止Compose服务。
  • docker-compose rm -f:删除已停止的Compose服务。
  • docker-compose ps:列出Compose服务中的各个容器
  • docker-compose build:重新构建服务
  • docker-compose exec:在容器里面执行命令
  • docker-compose scale:指定一个服务容器启动数量
  • docker-compose top:显示正在运行中的容器进程
  • docker-compose logs:查看服务容器的输出
  • docker-compose down:删除容器、网络、数据卷和镜像

安装

docker-compose是docker的独立产品,因此需要安装docker之后再单独安装docker compose

1.下载

curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2.授权

给他一个执行权限

sudo chmod +x /usr/local/bin/docker-compose

使用

docker-compose通过docker-compose编写yaml配置文件、可以通过compose一键启动所有服务,停止

1.创建文件

项目根目录下创建一个名为docker-compose.yml的文件

version: '3'  
services:  
  app:  
    build:  
      context: .  
      dockerfile: Dockerfile  
    ports:  
      - 8080:8080  
  db:  
    image: mysql  
    ports:  
      - 3306:3306

2.启动

项目根目录下使用命令:docker-compose up

docker Swarm

Swarm是Docker公司推出的用来管理docker集群的平台;多台服务器搭建一个docker集群,每个服务器就是集群中的一个节点。

关键概念

swarm :集群管理工具

node :节点,一个节点就是docker集群中的一个实例,我们可以在单台服务器上运行一个或多个节点。

service :应用编排

task : 应用实例

从集群角度来说,一个 Swarm 由一个或多个 Docker 节点组成。这些节点可以是物理服务器、虚拟机、树莓派(Raspberry Pi)或云实例。唯一的前提就是要求所有节点通过可靠的网络相连

调度策略

swarm在调度(scheduler)节点(leader节点)运行容器的时候,会根据指定的策略来计算最适合运行容器的节点,目前支持的策略有:spread,binpack,random

spread

          选择运行容器最少的那台节点来运行新的容器;使用Spread策略会使得容器会均衡的分布在集群中的各个节点上运行,一旦一个节点挂掉了只会损失少部分的容器

binpack

        最大化的避免容器碎片化,就是说binpack策略尽可能的把还未使用的节点留给需要更大空间的容器运行,尽可能的把容器运行在一个节点上面

random

        就是随机选择一个Node来运行容器,一般用作调试用

特性

        1.强大的集群容错性

        2.服务节点的可拓展性

集群部署

1.准备

准备3台服务器,并安装好docker

yum -y install docker

修改3台服务器主机名

关闭3台服务器防火墙

2.创建swarm并添加节点

在主服务器上创建swarm集群

docker swarm init --advertise-addr 192.168.21.142
Swarm initialized: current node (qcjc4vkza2nr4uj2p1fwvpx4e) is now a manager.

节点加入集群

在两台节点服务器上执行以下命令,将服务器加入到swarm集群,作为集群的节点使用

 docker swarm join --token SWMTKN-1-4kdb7ysckerhxc6gxc3bpltkxtm8o45yq1ikyv1kie825zibhh-bhwazb9y8i3s92v8mpv5c06so  192.168.21.142:2377

查看节点信息

docker info

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

8天长假快来了,Python分析【去哪儿旅游攻略】数据,制作可视化图表

目录 前言环境使用模块使用数据来源分析 代码实现导入模块请求数据解析保存 数据可视化导入模块、数据年份分布情况月份分布情况出行时间情况费用分布情况人员分布情况 前言 2023年的中秋节和国庆节即将来临,好消息是,它们将连休8天!这个长假…

MongoDB入门

简介 MongoDB是一个开源、高性能、支持海量数据存储的文档型数据库 是NoSQL数据库产品中的一种,是最像关系型数据库(MySQL)的非关系型数据库 内部采用BSON(二进制JSON)格式来存储数据,并支持水平扩展。 MongoDB本身并不是完全免费的,它对于…

算法-图BFS/DFS-单词接龙

算法-图BFS/DFS-单词接龙 1 题目概述 1.1 题目出处 https://leetcode-cn.com/problems/number-of-islands 1.2 题目描述 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如…

C++八股记录

C内存管理 C中,内存分成5个区。 栈:函数内局部变量;自动管理,效率高,但空间较小; 堆:new分配的内存块;手动管理,效率低,但空间大; 自由存储区&…

代码复现,我能行之DMP-MATLAB

代码复现,我能行——系列一 一、基础概念 Dynamic Movement Primitives (DMP),中文为动态运动基元或动态运动原语,由美国University of Southern California的Stefan Schaal教授团队于2002年提出,是一种用…

2023年智慧政务一网通办云平台顶层设计与建设方案PPT

导读:原文《2023年智慧政务一网通办云平台顶层设计与建设方案PPT》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 部分内容:

计算机竞赛 基于Django与深度学习的股票预测系统

文章目录 0 前言1 课题背景2 实现效果3 Django框架4 数据整理5 模型准备和训练6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于Django与深度学习的股票预测系统 ** 该项目较为新颖,适合作为竞赛课题方向&#xff…

GIT 常用指令

基础指令 $ git init #初始化仓库,在该文件夹创建的为workspace$ git add . #已暂存 [.通配符,全部添加]$ git commit -m "log add file" #提交到仓库,并写了日志 ”log add file“$ git status #查看状态,可查看被修改的文件…

win11出现安全中心空白和IT管理员已限制对此应用的某些区域的访问

问题 windows安全中心服务被禁用 winr 输入services.msc 找到windows安全中心服务查看是否被禁用,改为启动,不可以改动看第三条 打开设置,找到应用—windows安全中心–终止–修复–重置 重启如果还是不行看第四条 家庭版系统需要打开gped…

新手指南:7个步骤制定成功的项目预算

每个项目都涉及成本。项目越大、越复杂,执行的时间和金钱成本就越高。企业不会拥有无限的资源,所以每个项目都需要项目预算。 但挑战在于:确定项目需要多少预算并不总是那么容易。低估需求,最终会导致人手短缺,无法按…

数组中出现次数超过一半的数字

⭐️ 题目描述 🌟 OJ链接:数组中出现次数超过一半的数字 思路: 采用投票计数的方式,我们可以把每个数字都看成一次投票并且计数,那么最后剩下来的就是数组中数字出现次数最多的那一个。比如 { 1,2,3,2,2,2,5,4,2 } &a…

《动手学深度学习》-57长短期记忆网络LSTM

沐神版《动手学深度学习》学习笔记,记录学习过程,详细的内容请大家购买书籍查阅。 b站视频链接 开源教程链接 长短期记忆网络(LSTM) 长期以来,隐变量模型存在长期信息保存和短期输入缺失的问题。解决这一问题的最早…

【C# Programming】编程入门:数组、操作符、控制流

目录 一、数组 1、数组的声明 1.1 一维数组声明: 1.2 多维数组声明: 2、数组的实例化和赋值 2.1 数组在声明时通过在花括号中使用以逗号分隔的数据项对数组赋值, 例如: 2.2 如果在声明后赋值,则需…

算法通过村第四关-栈青铜笔记|手写栈操作

文章目录 前言1. 栈的基础概要1.1 栈的特征1.2 栈的操作1.3 Java中的栈 2. 栈的实现(手写栈)2.1 基于数组实现2.2 基于链表实现2.3 基于LinkedList实现 总结 前言 提示:我自己一个人的感觉很好 我并不想要拥有你 除非你比我的独处更加宜人 --…

探索生成式人工智能的前景

一、什么是生成式人工智能? 生成式人工智能(Generative AI)是一类人工智能(AI)技术和模型,旨在创建新颖的内容。与简单的复制不同,这些模型通过利用从训练数据集中收集到的模式和见解&#xff…

nginx-concat

为了减少tcp请求数量,nginx从上有服务器获取多个静态资源(css,js)的时候,将多个静态资源合并成一个返回给客户端。 这种前面有两个问号的请求都是用了cancat合并功能。 先到官网下载安装包,拷贝到服务器编译…

弯道超车必做好题集锦三(C语言选择题)

前言: 编程想要学的好,刷题少不了,我们不仅要多刷题,还要刷好题!为此我开启了一个弯道超车必做好题锦集的系列,每篇大约10题左右。此为第三篇选择题篇,该系列会不定期更新,后续还会…

C#_特性反射详解

特性是什么? 为程序元素额外添加声明信息的一种方式。 字面理解:相当于把额外信息写在干胶标签上,然后将其贴在程序集上。 反射是什么? 反射是一种能力,运行时获取程序集中的元数据。 字面理解:程序运行…

防溺水智能预警系统解决方案 yolov7

防溺水智能预警系统解决方案采用yolov7先进的AI视觉识别算法模型框架,防溺水智能预警系统解决方案算法实现对危险水域人员活动、水面情况等各项指标的监测和分析。当发现有人进入危险水域或出现紧急情况时,算法会立即发出预警信号。Yolo算法采用一个单独…

Android Glide preload RecyclerView切入后台不可见再切换可见只加载当前视野可见区域item图片,Kotlin

Android Glide preload RecyclerView切入后台不可见再切换可见只加载当前视野可见区域item图片&#xff0c;Kotlin <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.RE…