前言
学如逆水行舟,不进则退。学习一个东西要了解他的原理,作用及使用方法;和恋爱一样要了解这个人的过往,性格和爱好。言归正传,今天我们来学习下用docker-machine搭建swarm集群,这里只是我个人看法,有意见或者文章有错误在评论留言,我会及时改正和回复。
学习思路
✈docker-machine介绍
✈✈搭建环境
✈✈✈创建集群及测试
✈docker-machine介绍
Docker-machine 是docker官方编排(Orchestration)的项目之一,作为三剑客之一功能强大,不仅极大的简化了docker主机部署的复杂难度,而且方便了开发者管理分布式docker主机。
Docker-machine 作为一个工具,可以在虚拟机上安装docker engine(集群管理集成进),并使用docker-machine命令管理主机。
使用docker-machine命令,可以启动,检查,停止和重启托管主机,升级docker 客户端和守护程序,并配置docker客户端与主机通信。
(图片源自官网)
✈✈ 搭建环境
Windows安装virtualbox
为了避免有乱码使用xshell连接machine
具体的安装过程大家可以去看官网,这里就不一一写出来了
✈✈✈创建集群及测试
在virtualbox创建三个machine虚拟机(创建machine是在cmd里面操作的,连接以后有乱码,果断放弃,使用xshell连接)
docker-machine create --driver virtualbox default
docker-machine create --driver virtualbox default1
docker-machine create --driver virtualbox default2
创建集群,把default1,deafult2加到管理节点
在default创建集群,创建管理节点
docker swarm init --advertise-addr 192.168.99.101
创建出集群这里会自动生成
docker swarm join --token SWMTKN-1-2no9fmacsyc4w0cc2ufebnf7oon9y3nd22fdi0qesz2dt7kog7-6ypduf8x9h2wyo5z1enezg9a3 192.168.99.101:2377
这里生成的是其他节点加入集群的秘钥,再打开新的终端输入命令加入即可(图片太多就不贴图了)
docker swarm join --token SWMTKN-1-2no9fmacsyc4w0cc2ufebnf7oon9y3nd22fdi0qesz2dt7kog7-6ypduf8x9h2wyo5z1enezg9a3 192.168.99.105:2377
查看节点创建成功与否
docker node ls
default中创建5个相同的镜像
docker service create --name busybox busybox sh -c 'while true; do sleep 3600;done';
docker service scale busybox=5
docker service ps busybox
自动随机分配镜像,我这里只有default2分配到一个
测试
删除镜像2以用来测试,测试目标是服务宕机后,自动重启。
docker stop 532970b63acf
docker rm 532970b63acf
docker service ps busybox
图中我的已经重启,说明就是成功了