docker swarm
介绍
- 吧多个Docker Engine聚集在一起,然后对外提供容器的集群服务
- 将一群Docker宿主机变成一个单一的蓄虚拟主机
- Swarm deamon只是一个调度器加路由器,自己不运行容器,只接受docker客户端发送过来的请求,调度适合的节点来运行容器
特点
- 对外以Docker api接口呈现,从单机到集群就比较方便,不需要改变现有系统
- 插件化机制,各个模块都抽象出api,可以进行定制
- Swarm对Docker命令参数支持的比较完善.
架构
使用
环境准备
- 准备三台安装了docker engine的主机,版本在1.12以上
- docker容器主机的ip固定,所有工作节点都能访问管理节点
- 集群管理节点必须使用相应的协议并保证端口可用
- 集群管理:TCP,端口2377
- 节点通信:TCP和UDP,端口7946
- 覆盖性网络:UDP,端口4789,overlay驱动
- 说明
- 192.168.200.162(管理节点):manager1
- 192.168.200.163(工作节点):work1
- 192.168.200.158(工作节点):work2
创建docker sware
- 在manager1机器上创建docker swarm集群
docker swarm init --advertise - addr 192.168.200.138
–advertise - addr将该ip地址的及其设置为集群管理节点,单节点不用这个参数
- 查看管理节点集群信息
docker node ls
添加工作节点
- 在两个工作节点分别使用下面命令
docker swarm join --token xxx 192.168.200.138:2377
–token xxx想指定集群加入工作节点的认证信息,xxx是出那个创建docker swarm时产生的
- 查看集群信息节点
docker node ls
在docker sware中部署服务
- 部署服务
docker service create --replicas 1 --name helloworld alpine ping docker.com
docker service create:在swarm集群创建一个基于alpine镜像的服务
–replicas:指定该服务只有一个副本实例
–name:创建成功后服务名称
ping docker.com:表示服务启动后执行的命令
查案docker swarm集群的服务
- 查看服务列表
docker service ls
- 查看部署具体服务的详细信息
docker service inspect 服务名
- 查看服务在集群节点上的分配和运行情况
docker service ps 服务名称
修改副本数量
- 在manage1上,更改服务副本的数量
docker service scale helloworld=5
删除服务(在管理节点)
docker service rm 服务名称
访问服务
- 查看集群环境下的网络列表
docker network ls
- 在manager1上创建1overlay为驱动的网络
docker network create -的=overlay my-multi-host-network
- 在集群管理节点部署一个nginx服务
docker service create --network my-multi-host-network --name my-web -p 8080:80 --replicas 2
- 在管理节点查案服务的㛙情况
假装自己不胖 发布了100 篇原创文章 · 获赞 12 · 访问量 642 私信 关注docker service ps my-web