继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕虎7371278
关注TA
已关注
手记 1259
粉丝 203
获赞 873

前言

前文已经描述如何部署单机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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP