Docker Swarm集群

Docker Swarm集群

2.1 Docker Swarm概述

概述,请大家点开此链接进行查看,这位博主写的非常详细。[https://blog.csdn.net/anumbrella/article/details/80369913]

2.2 Dockers Swarm使用

2.2.1 环境搭建
  1. 准备3台Ubuntu系统主机(即用于搭建集群的3个Docker机器),每台机器上都需要安装Docker并且可以连接网络,同时要求Docker版本必须是1.12及以上,因为老版本不支持Docker Swarm

  2. 集群管理节点Docker机器的IP地址必须固定,集群中所有节点都能够访问该管理节点。

  3. 集群节点之间必须使用相应的协议并保证其以下端口可用:

    • 用于集群管理通信的TCP端口2377;

    • TCP 和UDP 端口7946,用于节点间的通信;

    • UDP 端口 4789,用于覆盖网络流量

      为了进行本实例演示,此处按照要求安装了3台使用ubuntu16.04系统的机器,这三台机器的主机名称分别为manager1(作为管理节点),worker1(作为工作节点),worker2(作为工作节点),其IP地址分别如下:

      主机名IP地址
      manager1192.168.197.143
      worker1192.168.197.144
      worker2192.168.197.145
2.2.2 创建 Docker Swarm 集群
  1. 在名为manager1的Docker的Docker机器上创建Docker Swarm集群,具体操作指令如下。

    sudo docker swarm init --advertise-addr 192.168.197.143
    

    在这里插入图片描述

  2. 在管理节点上,使用docker node ls 指令查看集群节点信息

    sudo docker node ls
    

    在这里插入图片描述

2.2.3 向 Docker Swarm集群添加工作节点
  1. 启动另外两台Docker机器worker1和worker2,分别打开终端窗口,执行向集群中加入工作节点的指令,具体操作指令如下。

    sudo docker swarm join --token SWMTKN-1-2l5ldta6kir8ybimpfhzf32t3vnu2m7gl7u70zrdarzq7f8461-9t4v8i43jrh8pgvlorxviwabw 192.168.197.143:2377
    

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

  2. 再次在集群管理节点上使用docker node ls指令查看集群节点信息

    sudo docker node ls
    

    在这里插入图片描述

2.2.4 向 Docker Swarm集群部署服务

​ 在向Docker Swarm集群中部署服务时,既可以使用Docker Hub上自带的镜像来启动服务,也可以使用自己通过Dockerfile的镜像来启动服务,如果使用自己通过的Dockerfile构建的镜像来启动服务那么必须先将镜像推送到Docker Hub中心仓库

​ 为了便于读者学习,这里以使用Docker Hub上自带的alpine镜像为例来部署集群服务,具体指令如下:

sudo docker service create --replicas 1 --name helloworld alpine ping docker.com

在这里插入图片描述

2.2.5 查看Docker Swarm 集群中的服务
  1. 当服务部署完成后,在管理节点上可以通过docker service ls指令查看当前集群中的服务列表信息,具体指令如下.

    sudo docker service ls
    

    在这里插入图片描述

  2. 可以使用docker service inspect指令,查看部署的服务具体详情,具体操作指令如下。

    sudo docker service inspect helloworld
    

    在这里插入图片描述

  3. 可以使用docker service ps 指令查看指定服务在集群节点上的分配和运行情况,具体操作指令如下。

    sudo docker service ps helloworld
    

    在这里插入图片描述

2.2.6 更改 Docker Swarm 集群服务样本数量

​ 在集群中部署的服务,如果只运行一个副本,就无法体现出集群的优势,并且一旦该机器或副本奔溃,该服务将无法访问,所以通常一个服务会启动多个服务副本。

​ 在管理节点manager1上,更改服务副本数量指令如下。

sudo docker service scale helloworld=5

在这里插入图片描述

​ 更改完成之后,就可以使用docker service ps 指令查看这5个服务副本在3个节点上的具体分布和运行情况。

在这里插入图片描述

2.2.7 删除服务

​ 对不需要的服务,我们可以进行删除,具体操作指令如下。

sudo docker service rm helloworld

​ 在集群管理节点manage1上执行上述删除服务指令后(需要指定删除服务的名称),该服务就会在集群中彻底删除。

2.2.8 访问服务
  1. 在集群管理节点manager1上,执行docker network ls指令查看网络列表,效果如下图。

    在这里插入图片描述

  2. 在集群管理节点manager1上,创建以overlay为驱动的自定义网络,具体指令如下。

    sudo docker network create --driver overlay my-multi-host-network
    

    在这里插入图片描述

  3. 在集群管理节点manager1上,再次部署服务,具体操作指令如下。

    sudo docker service create --network my-multi-host-network --name my-web --publish 8080:80 --replicas 2 nginx
    

    在这里插入图片描述

  4. 在集群管理节点manager1上,使用docker service ps my-web指令查看服务的两个副本运行情况,结果如下图所示。

    sudo docker service ps my-web
    

    在这里插入图片描述

  5. 外界访问服务。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值