为了账号安全,请及时绑定邮箱和手机立即绑定

Docker从零到集群(3/3)—Machine,Compose,Swarm

标签:
Docker

前言

前文已经描述如何部署单机Docker应用,那本文将会描述如何利用Docker Swarm将单机应用拓展为集群应用

一、创建虚拟机

创建一个最迷你的集群,我们需要三台虚拟机,分别是管理节点m1,然后两个工作节点w1和w2

docker-machine create m1
docker-machine create w1
docker-machine create w2

二、创建集群

使用Docker Swarm创建和管理集群是简单易用的,我们只需要分别创建【管理节点】和【工作节点】,然后将工作节点加入管理节点即可完成

1、初始化集群管理节点

docker-machine ssh m1
docker swarm init --advertise-addr [m1主机的IP]

2、初始化集群工作节点

docker-machine ssh w1
docker swarm join --token [m1的token]
docker-machine ssh w2
docker swarm join --token [m1的token]

只需要以上步骤,我们就完成了最迷你的集群创建,Docker的魅力也就是如此,将传统复杂的集群部署构建工作,简化至此,所以才会有人说Docker正在改变世界不是吗?

然后我们可以在管理节点查看集群状态

docker-machine ssh m1
docker node ls

三、部署服务

1、编写stack-compose.yml文件,用于多服务部署

version: '3'services:
  nginx: # Nginx服务
    image: cheney/nginx:latest    ports:
      - "80:80"
    volumes:
      - /Users/cheney/Documents/docker/nginx/log:/var/log/nginx
      #   - /Users/cheney/Documents/docker/nginx/nginx.conf:/etc/nginx/nginx.conf
      #   - /Users/cheney/Documents/docker/nginx/conf.d:/etc/nginx/conf.d
      #   - /Users/cheney/Documents/docker/nginx/html:/usr/share/nginx/html

  autodeploy: # 自定义NODE服务
    image:  cheney/autodeploy:latest  
  visualizer: # Docker管理可视化服务
    image: dockersamples/visualizer:latest    ports:
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]networks:
  overlay:

说明:以上yml文件部署了三个服务,分别是一个Nginx应用,一个Node应用,一个visualizer应用(用于可视化监控集群状态)

2、正式部署集群

docker stack deploy --compose-file=stack-compose.yml [集群名称]

只需要以上步骤,Docker Swarm 会全自动地将所有服务以负载均衡的方式部署在不同的主机上,几乎不需要人工干预,通过以下命令可以在m1主机查看集群和服务的部署情况

docker stack ls
docker service ls

也可以通过在浏览器上访问如下地址,可视化查看集群状态

http://[m1的主机IP]:8080

webp

image.png

拓展服务的部署数量非常简单,只需在m1执行如下命令

docker service scale [需要拓展的服务]=3

删除部署

如果不希望保留集群,执行下面命令即可清理

docker stack rm [集群名称]

后记

十分感谢您的阅读,Docker系列的文章还有很多细节没有补充,可能对于初学者来说还是难以入门,没有关系,后续我会定期逐渐补充其中细节,完全让每一位希望利用Docker改变世界的人,实现自己的愿景

作者:CheneyXu



作者:宇帅
链接:https://www.jianshu.com/p/7db89f3ab0dd


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消