Swarm

Posted vbirdbest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swarm相关的知识,希望对你有一定的参考价值。

Swarm 用于管理Docker集群,同时操作多台Docker服务器。

搭建步骤:
1、环境准备: 1.1、准备三台已近安装docker engine的centos/Ubuntu系统主机(docker版本必须在 1.12以上的版本,老版本不支持swarm) 1.2、docker容器主机的ip地址固定,集群中所有工作节点必须能访问该管理节点 1.3、集群管理节点必须使用相应的协议并且保证端口可用 集群管理通信:TCP,端口2377 节点通信:TCP和UDP,端口7946 覆盖型网络(docker网络):UDP,端口4789 overlay驱动 说明:三台容器主机的ip地址分别为: 192.168.200.162(管理节点) 192.168.200.163(工作节点) 192.168.200.158(工作节点) 主机名称分别为:manager1、work1以及work2 vim /etc/hostname (修改完成后需要重启)

2、创建docker swarm 2.1、在manager1机器上创建docker swarm集群 docker swarm init ‐‐advertise‐addr 192.168.200.162 (‐‐advertise‐addr将该IP地址的机器设置为集群管理节点;如果是单节点,无需该参 数)2.2、查看管理节点集群信息: docker node ls

3、向docker swarm中添加工作节点:在两个工作节点中分别执行如下命令,ip地址是 manager节点的 3.1、添加两个work节点 docker swarm join ‐‐token xxx 192.168.200.138:2377 (worker1) docker swarm join ‐‐token xxx 192.168.200.138:2377 (worker2) (‐‐token xxx:向指定集群中加入工作节点的认证信息,xxx认证信息是在创建docker swarm时产生的) 3.2、继续查看管理节点集群信息与之前的区别 docker node ls

4、在docker swarm中部署服务 在Docker Swarm集群中部署服务时,既可以使用Docker Hub上自带的镜像来启动服务,也
可以使用自己通Dockerfile构建的镜像来启动服务。如果使用自己通过Dockerfile构建的 镜像来启动服务那么必须先将镜像推送到Docker Hub中心仓库。为了方便读者的学习,这里 以使用Docker Hub上自带的alpine镜像为例来部署集群服务 4.1、部署服务 docker service create ‐‐replicas 1 ‐‐name helloworld alpine ping docker.com docker service create指令:用于在Swarm集群中创建一个基于alpine镜像的服务 ‐‐replicas参数:指定了该服务只有一个副本实例 ‐‐name参数:指定创建成功后的服务名称为helloworld ping docker.com指令:表示服务启动后执行的命令

5.查看docker swarm集群中的服务 查看服务列表:docker service ls 查看部署具体服务的详细信息:docker service inspect 服务名称 查看服务在集群节点上的分配以及运行情况:docker service ps 服务名称

6、修改副本数量 在manager1上,更改服务副本的数量(创建的副本会随机分配到不同的节点) docker service scale helloworld=5

7、删除服务(在管理节点) docker service rm 服务名称

8、访问服务 8.1、查看集群环境下的网络列表:docker network ls 8.2、在manager1上创建一overlay为驱动的网络(默认使用的网络连接ingress) docker network create ‐d=overlay my‐multi‐host‐network 8.3、在集群管理节点manager1上部署一个nginx服务 docker service create \\ ‐‐network my‐multi‐host‐network \\ ‐‐name my‐web \\ ‐p 8080:80 \\ ‐‐replicas 2 \\ nginx 8.3、在管理节点查看服务的运行情况: docker service ps my‐web 8.4、访问测试

以上是关于Swarm的主要内容,如果未能解决你的问题,请参考以下文章

1+x swarm