swarm 是 docker 公司弄的 docker 集群管理工具。 整理使用实践如下。
1. 准备 3 台实例机 ip 地址分别是 192.168.0.131 ~ 133
2. 在三台机器上安装 docker 和 修改 docker 启动文件 配置 vim /etc/sysconfig/docker 加入 -H tcp://0.0.0.0:2375
OPTIONS='-g /cutome-path/docker -H tcp://0.0.0.0:2375'
3. 三台机器启动 docker 分别 docker pull swarm
4. 创建 swarm 集群
-- 创建 swarm
docker swarm init --advertise-addr 192.168.182.110
返回: SWMTKN-1-16izmwyfwxhok9lgoq8idlefumipgq2y7iv2pjja6zf53epaya-0cqbeordfj92bj86prcajmft3
--另外俩台机器加入 集群
docker swarm join \
--token SWMTKN-1-16izmwyfwxhok9lgoq8idlefumipgq2y7iv2pjja6zf53epaya-0cqbeordfj92bj86prcajmft3 \
192.168.0.131:2377
可以用以下命令查看 swarm集群的信息:
docker node list
docker network ls ()默认一个公用网络名称 ingress
docker service ls
5. 创建服务
docker service create --replicas 2 --name mynginx_swarm -p 8000:80 --network=ingress nginx
-- 调整 replicas 数量
docker service scale hpuwfzb963yy=3 或 docker service scale mynginx_swarm =3
-- 查看服务
docker service ps mynginx_swarm 或 docker service ps hpuwfzb963yy
--删除服务,慎用
docker service rm mynginx_swarm
6.滚动更新实践
创建一个 redis服务练手
docker service create \
--replicas 3 \
--name redis \
--update-delay 10s \
redis:3.0.6
--update-delay 是一个设置, 在后续的更新过程中,每个 replica 更新间隔 10 秒
2.开始更新
docker service update --image redis:3.0.7 redis
--暂停一个节点的服务
docker node update --availability drain worker1
worker1 是节点名, 节点id
--查看服务
docker service inspect --pretty mynginx_swarm
docker service inspect mynginx_swarm
参考:
http://www.runoob.com/docker/docker-install-nginx.html
https://www.jianshu.com/p/0e231a928ee6
http://dockone.io/article/227
https://www.cnblogs.com/liuyansheng/p/8178341.html
https://blog.csdn.net/u011781521/article/details/80468985 (主要)
https://docs.docker.com/swarm/ (字典)