Docker进阶Swarm、Stack、Secret、Config

简介: 作者主页:https://www.couragesteak.com/

1 Swarm介绍

安装docker
https://blog.csdn.net/zx77588023/article/details/122652560

1.1 Warm文档

https://docs.docker.com/config/daemon/prometheus/

Run your app in production -> Configure containers -> Scale your app

1.2 工作模式

在这里插入图片描述Raft:一致性算法

1.3 购买服务器

在这里插入图片描述

集群
2主2从

2 搭建集群

[root@VM-0-14-centos ~]# docker swarm --help

Usage:  docker swarm COMMAND

Manage Swarm

Commands:
  ca          Display and rotate the root CA
  init        Initialize a swarm
  join        Join a swarm as a node and/or manager
  join-token  Manage join tokens
  leave       Leave the swarm
  unlock      Unlock swarm
  unlock-key  Manage the unlock key
  update      Update the swarm

Run 'docker swarm COMMAND --help' for more information on a command.
[root@VM-0-14-centos ~]# docker swarm init --help

Usage:  docker swarm init [OPTIONS]

Initialize a swarm

Options:
      --advertise-addr string   # 广播地址               Advertised address (format: <ip|interface>[:port])
      --autolock                               Enable manager autolocking (requiring an unlock key to start a
                                               stopped manager)
      --availability string                    Availability of the node ("active"|"pause"|"drain") (default "active")
      --cert-expiry duration                   Validity period for node certificates (ns|us|ms|s|m|h) (default
                                               2160h0m0s)
      --data-path-addr string                  Address or interface to use for data path traffic (format:
                                               <ip|interface>)
      --data-path-port uint32                  Port number to use for data path traffic (1024 - 49151). If no
                                               value is set or is set to 0, the default port (4789) is used.
      --default-addr-pool ipNetSlice           default address pool in CIDR format (default [])
      --default-addr-pool-mask-length uint32   default address pool subnet mask length (default 24)
      --dispatcher-heartbeat duration          Dispatcher heartbeat period (ns|us|ms|s|m|h) (default 5s)
      --external-ca external-ca                Specifications of one or more certificate signing endpoints
      --force-new-cluster                      Force create a new cluster from current state
      --listen-addr node-addr                  Listen address (format: <ip|interface>[:port]) (default 0.0.0.0:2377)
      --max-snapshots uint                     Number of additional Raft snapshots to retain
      --snapshot-interval uint  # 快照               Number of log entries between Raft snapshots (default 10000)
      --task-history-limit int                 Task history retention limit (default 5)
# 初始化主节点
docker swarm init
# 加入一个节点(管理者、worker)
docker swarm join

# 获取令牌
docker swarm join-token manager    # 生成加入 manager节点 命令
docker swarm join-token worker    # 生成加入 worker 节点 命令

将dokcer1设置为主节点

docker swarm init --advertise-addr 172.27.0.6

在这里插入图片描述
docker2加入1节点

docker swarm join --token SWMTKN-1-6b1kbshfye331k4d86az2ohqvdwlj1bijsbka6hvb8h5ha4n28-e61bl5kpo7c1jbaj4hj8nizv1 172.27.0.6:2377

主节点查看所有节点

docker node ls

3 Raft协议

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

关闭docker:测试挂机

systemctl stop docker

退出集群

docker swarm leave

故:至少3个主节点 多于1台机器存货

4 弹性、扩缩容、集群

docker-compose up:启动一个项目。单机

集群:swarm docker service

容器 => 服务 => 副本

帮助

[root@VM-0-6-centos ~]# docker service --help

Usage:  docker service COMMAND

Manage services

Commands:
  create      创建一个 new service
  inspect     查看services细节
  logs        查看service日志
  ls          List services
  ps          List the tasks of one or more services
  rm          Remove one or more services
  rollback    Revert changes to a service's configuration
  scale       动态扩缩容 Scale one or multiple replicated services
  update      更行service

Run 'docker service COMMAND --help' for more information on a command.

启动服务

docker service create -p 8888:80 --name my-nginx nginx
docker run 容器启动!不具有扩缩容
docker service 服务!具有扩缩容,滚动更新

查看服务

# REPLICAS:副本数目
docker service ps ls
docker service ps my-nginx

# 查看服务 元数据
docker service inspect my0nginx

更新副本数量

docker service update --replicas 5 my-nginx
或
docker service scale my-nginx=5

调整service 以什么方式运行

dcoker service create --mode replicated --name mytom tomcat:7 

docker service create --mode global --name haha alpine ping baidu.com

Docker Stack

# 单机
docker-compose up -d wordpress.yaml

# 集群
docker-stack deploy wordpress.yaml

Docker Secret

学习地址:
https://www.bilibili.com/video/BV1kv411q7Qc

相关文章
|
5天前
|
应用服务中间件 nginx Docker
Docker Swarm、Docker Stack和Portainer的使用
Docker Swarm、Docker Stack 和 Portainer 各有其独特的功能和优势。Docker Swarm 适用于分布式服务的管理和编排,Docker Stack 便于多容器应用的定义和部署,而 Portainer 提供了直观的 UI,简化了 Docker 环境的管理。结合使用这些工具,可以大大提高容器化应用的部署和管理效率。希望本文对您理解和应用这些工具有所帮助。
16 5
|
21天前
|
负载均衡 应用服务中间件 网络安全
docker swarm添加更多的服务
【10月更文挑战第16天】
18 6
|
21天前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
20 5
|
21天前
|
调度 Docker 容器
docker swarm创建覆盖网络
【10月更文挑战第16天】
14 5
|
7天前
|
API Docker 容器
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
|
7天前
|
调度 Docker 容器
【赵渝强老师】Docker Swarm集群的体系架构
Docker Swarm自1.12.0版本起集成至Docker引擎,无需单独安装。它内置服务发现功能,支持跨多服务器或宿主机创建容器,形成集群提供服务。相比之下,Docker Compose仅限于单个宿主机。Docker Swarm采用主从架构,Swarm Manager负责管理和调度集群中的容器资源,用户通过其接口发送指令,Swarm Node根据指令创建容器运行应用。
|
19天前
|
负载均衡 安全 调度
深入调查研究Docker Swarm
【10月更文挑战第19天】
27 0
|
5天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
23 2
|
Docker 容器 Perl
环境变量方式使用 Secret - 每天5分钟玩转 Docker 容器技术(158)
本节讨论如何以环境变量的方式使用 Secret。
2716 0
|
Web App开发 Docker 容器
volume 方式使用 Secret - 每天5分钟玩转 Docker 容器技术(157)
本节讨论如何以 volume 方式使用 secret。
1710 0

热门文章

最新文章

  • 1
    Spring Boot与Spring Cloud Config的集成
    212
  • 2
    若依修改标题和icon,在vue.config.js和.env.development进行修改
    316
  • 3
    若依修改,若依的com.ruoyi.framework.config在那?搜索文件使用ctrl+shift+f不用搜狗输入法,其他輸入法,用英文
    44
  • 4
    若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号
    157
  • 5
    部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
    70
  • 6
    若依修改---重新部署项目注意事项,新文件初始化需要修改的地方,打包后的文件很难进行修改,如果想要不断修改项目,注意保存原项目,才可以不断修改,前端:在Vue.config.js文件中修改target
    130
  • 7
    若依修改之后,无法访问前端项目如何解决,只能访问后端的接口,我的接口8083,端不显示咋解决?在vue.config.js文件中的映射路径要跟后端匹配,到软件商店里找到Ngnix配置代理,设80不用加
    613
  • 8
    文本vitepress,如何设置背景图,如何插入背景图,如何插入logo,为了放背景图片,我们要新建pubilc的文件夹,插入logo要在config.js中进行配置,注意细节,在添加背景时,注意格式
    136
  • 9
    文本,vitepress的使用,如何使用vitevitepress没有config.js该怎么办?这里使用vitepress进行手动配置,参考只爭朝夕不負韶華的文章
    66
  • 10
    vue 配置【详解】 vue.config.js ( 含 webpack 配置 )
    67