docker swarm 是集群管理工具,通过docker swarm可管理多个在集群中的节点机
通过创建swarm容器来执行各种swarm命令
--rm参数:容器执行完命令后自动删除容器
安装docker swarm
swarm工具被封装在swarm镜像内,先下载swarm镜像
1.利用swarm创建集群
docker run --rm swarm create
返回一个集群号
2.设置节点机docker守护进程远程访问
对于centos7:编辑/usr/lib/systemed/system/docker.service文件,在ExecStart后添加-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
docker守护进程默认监听/var/run/docker.sock套接字,2375一般作为docekr端口
之后运行systemctl daemon-reload 命令,再运行service docker restart
3.节点机加入集群(启动swarm代理)
节点机须有docker swarm 镜像
docker run -d swarm join --addr=本机ip:2375 token://集群号
当停止或删除swarm代理容器时,节点机会退出集群
4.查看集群内的节点机ip地址
docker run --rm swarm list token://集群号
5.启动swarm管理者
docker run -d -p 端口号:2375 swarm manage token://端口号
6.向各个节点机发送命令
节点机需关闭防火墙,以允许swarm管理者访问2375端口
执行systemctl stop firewalld.service和systemctl disable firewalld.service
在启动swarm管理者的机器上运行如下命令
docker -H tcp://localhost:端口号 具体的docker命令
如:docker -H tcp://localhost:2380 info
要查看各节点机的状态是否正常
加入集群或退出集群后,查询集群节点机时可能会存在延迟,如果无法加入或无法退出,可以执行service docker restart 命令,之后再次操作
创建容器时的策略
1.平铺策略(默认)
选择容器少的节点机优先创建容器
2.紧凑策略
过滤器
指定容器在满足条件的节点机上运行
1.约束过滤器
在指定节点机上运行容器
2.亲和过滤器
让容器在同一节点机或不同节点机上运行