Docker Swarm

2023-05-16

1、购买4台阿里云

按量付费买四台
在这里插入图片描述

2、都安装docker

Xshell右键 可以将命令发送到所有会话
在这里插入图片描述

3、查看官网

地址:https://docs.docker.com/engine/swarm/
在这里插入图片描述

4、工作模式

在这里插入图片描述

5、搭建集群

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
私网不需要流量,省钱
172.27.88.127

5.1 搭建主机

# 初始化节点  docker001操作
[root@mydocker0001 ~]# docker swarm init --advertise-addr 172.27.88.127

在这里插入图片描述

5.2 将从机添加到主机

初始化节点 :docker swarm init
加入一个节点:docker swarm join

# 获取令牌  主节点  工作节点
docker swarm  join-token manager
docker swarm  join-token worker

5.3.1 docker2 进行join操作

docker swarm join --token SWMTKN-1-1l0w32nbpe6hje5ajrdx4z31skh0fxcu16luqgmkh4ouvcxd1b-5i3qk6rjsxc8qq3uhrrk4ke97 172.27.88.127:2377

在这里插入图片描述

5.3.2 docker1 生成一个工作节点 docker3运行

在这里插入图片描述

5.3.3 docker1生成一个管理节点 docker4运行

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

5.3 主机查看节点

docekr node ls

在这里插入图片描述

1、生成主节点 init
2、加入(管理者、worker)
搭建了双主双从

6、Raft协议

双主双从:假设一个节点挂了!其他节点是否可以!
Raft协议:保证大多数节点存活才可以用。只要>1,集群至少大于3台
实验:

6.1 将docker1停止,宕机! 双主,发现另外一台主节点也不能使用了

在这里插入图片描述

6.2 可以将其他节点离开

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

6.3 3台机器设置为管理节点

挂掉一台,剩下两台,管理节点可以操作
挂掉两台,剩下一台,管理节点不可操作

结论:
集群可用! 至少要有三个管理节点。 大于1台管理节点存活!
Raft协议:保证大多数节点存活,才可以使用,保证高可用!

7、操作体会一下集群

弹性!扩缩容!集群!
以后告别docker run
docker-compose up 启动一个项目。单机!
集群:docker swarm docker service
容器 => 服务
集群:高可用,比如web应用需要用redis(3台,在不同的机器上!)
容器 => 服务 => 副本
redis服务 => 10个副本 (同时开始10个redis容器)

体验:创建服务、动态扩展服务、动态更新服务。
在这里插入图片描述

7.1 灰度发布:金丝雀发布!

docker service create  -p 8888:80  --name my-nginx  nginx
# docker  ps 发现这个服务随机分配到了docker2 上

在这里插入图片描述

docker run  容器启动!不具有扩缩容器!
docker service 服务! 具有扩缩容器,滚动更新

查看服务 REPLICAS

docekr service ps my-nginx
docker service ls 

在这里插入图片描述

docker service inspect my-nginx

7.2 为my-nginx 创建三个副本

docker service update --replicas 3 my-nginx

在这里插入图片描述

7.3 访问一下

在这里插入图片描述

7.4 动态扩缩容

方法一:

# 扩容到10个
docker service update --replicas 10 my-nginx

在这里插入图片描述
服务,集群中的任意节点都可以访问。服务可以有多个副本动态扩容实现

# 缩容到1个
docker service update --replicas 1 my-nginx

方法二

# 扩容到5个
docker service scale my-nginx=5

在这里插入图片描述

7.5 移除服务

docker service rm my-nginx

8、概念总结

Swarm :
集群的管理和编号。docker可以初始化一个swarm集群,其他节点可以加入。(管理节点、工作节点)

Node
就是一个docker节点。多个节点就组成了一个网络集群。

Service
任务,可以在管理节点或者工作节点来运行!

Task
容器内的命令,细节任务

9、拓展

网络模式:“PublishMode”:“ingress”
Swarm:
Overlay:
ingress: 特殊的Overlay网络!负载均衡功能! IPVS VIP

虽然docker在四台机器上,实际上用的是同一个网络!ingress网络,是一个特殊的Overlay网络

[root@mydocker0001 ~]# docker network inspect ingress

在这里插入图片描述

10、Docker Stack

docker-compose 单机部署项目
Docker Stack 集群部署

# 单机
docker-compose up -d wordpress.yaml
# 集群
docker stack deploy wordpress.yaml

# docker-compose.yaml文件
version: "3.9"
services:
  service1:
    image: "service1"
    deploy:
        replicas: 2
    ports:
      - "8080:8080"

  service2:
    image: "service2"
    deploy:
        replicas: 3
    ports:
      - "8081:8081"

11、Docker Stack

安全!配置!证书!
在这里插入图片描述

12、Docker Config

配置
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker Swarm 的相关文章

随机推荐

  • Linux环境安装RabbitMQ

    RabbitMQ Linux环境安装 检查当前linux服务器的版本 lsb release a 官网下载安装包 xff1a https www rabbitmq com download html 1 2 3 选择对应的安装环境 4 对照
  • MySQL的安装

    MySQL的安装 1 下载 网址 xff1a https dev mysql com downloads mysql 2 下载5 7版本 xff08 1 xff09 xff08 2 xff09 xff08 3 xff09 3 配置环境变量
  • Nginx windows server 2012部署过程

    部署静态网页到服务器 今天做了一个静态网页 xff0c 想部署带到自己的阿里云服务器 通过查询可以使用tomcat容器或者nginx xff0c 主流方式是nginx部署 xff0c 记录一下自己部署的过程 一 nginx简介 Nginx
  • 点击按钮实时刷新图片

    js给 lt img gt 标签的src赋值 最近做一个点击一个按钮刷新加载另一张图片的功能 主要就是改变图的路径 记录一下自己遇到的坑 支持原生的js和jq实现 用js原生方法 xff1a document getElementById
  • RestTemplate的学习与使用

    RestTemplate的学习与使用 最近在开发过程中遇到使用接口传输数据 了解到到RestTemplate 1 源码分析 span class token keyword public span span class token keyw
  • Linux环境下redis的安装

    Linux环境下redis的安装 1 下载redis安装包 服务器上执行以下命令下载redis安装包 cd export software wegt http download redis io releases redis 6 2 6 t
  • Docker的安装

    Docker的安装 1 linux下安装docker xff08 CentOS7 xff09 curl sSL https get daocloud io docker sh 2 查看docker的版本 docker v 3 启动 关闭do
  • Redis的应用场景

    1 String操作 xff08 1 xff09 计数器 incr artcle readconunt 文章id get artcle readconunt 文章id 2 Hash操作 1 对象缓存 hmset user 1 name li
  • nginx在linux环境安装

    1 安装依赖包 yum install pcre pcre devel y yum install openssl openssl devel y 2 官网下载安装包传到linux环境 安装包存放位置 export software 解压目
  • 开发杂谈(一)常见问题

    1 github 1 从GITHUB下载慢而且容易中断解决办法 1 从GITHUB下载慢而且容易中断解决办法 将github项目导入到码云网 xff08 https gitee com xff09 然后再下载会很快 xff0c 登录码云网后
  • Windows证书函数

    C语言操作WINDOWS系统存储区数字证书相关函数详解及实例 以下代码使用C 43 43 实现遍历存储区证书及使用UI选择一个证书 使用 CertOpenSystemStore打开证书存储区 在循环中 使用CertEnumCertifica
  • 使用Docker安装RabbitMQ

    1 yum 包更新到最新 yum update xff08 2 xff09 安装需要的软件包 xff0c yum util 提供yum config manager功能 xff0c 另外两个是devicemapper驱动依赖的 yum in
  • docker的安装及常用命令

    安装Docker 官网地址 https www docker com 文档地址 https docs docker com Dockerhub仓库地址 https hub docker com 名词解释 镜像 xff08 image xff
  • docker安装部署一些软件(nginx、tomcat、mysql、es)

    linux防火墙相关操作 systemctl restart firewalld service span class token comment 重启服务 span systemctl start firewalld span class
  • docker的commit和容器数据卷

    commit镜像 span class token function docker span commit 提交容器成为一个新的副本 span class token comment 命令和git原理相似 span span class t
  • DockerFile的使用

    DockerFile dockerfile是用来构建docker镜像的文件 xff01 命令参数脚本 构建步骤 xff1a 1 编写一个dockerfile文件 2 docker build 构建成为一个镜像 3 docker run 运行
  • Docker网络及SpringBoot应用打包

    1 查看当前阿里云的一网络信息 span class token comment 命令 ip addr span 2 查看容器内部网络地址 这里使用上一篇博客的自定义Dockerfile文件构建的tomcat xff0c 因为默认拉取的镜像
  • Docker学习目录

    自己整理的笔记 1 docker的安装及常用命令 2 docker的commit和容器数据卷 3 docker安装部署一些软件 xff08 nginx tomcat mysql es xff09 4 DockerFile的使用 5 Dock
  • Docker Compose

    1 Docker Compose官网说明 理解 Compose是Docker官方的开源项目 需要安装 xff01 Dockerfile 让程序在任何地方运行 web服务 redis mysql nginx 多个容器 run Compose的
  • Docker Swarm

    1 购买4台阿里云 按量付费买四台 2 都安装docker Xshell右键 可以将命令发送到所有会话 3 查看官网 地址 xff1a https docs docker com engine swarm 4 工作模式 5 搭建集群 私网不