swarm

swarm
  • create a couple of VMs using docker-machine, using the VirtualBox driver:
$ docker-machine create --driver virtualbox myvm1
$ docker-machine create --driver virtualbox myvm2
  • Instruct myvm1 to become a swarm manager with docker swarm initand you’ll see output like this:
[root@localhost centos]# docker-machine ssh myvm2 "docker swarm init"
Error response from daemon: could not choose an IP address to advertise since this system has multiple addresses on different interfaces (10.0.2.15 on eth0 and 192.168.99.100 on eth1) - specify one with --advertise-addr
exit status 1

Got an error about needing to use --advertise-addr?

Copy the IP address for myvm1 by running docker-machine ls, then run the docker swarm init command again, using that IP and specifying port 2377 (the port for swarm joins) with --advertise-addr.

[root@localhost centos]# docker-machine ssh myvm1 "docker swarm init --advertise-addr 192.168.99.101:2376"
Swarm initialized: current node (y3rtxupqphgls4m5f4ez0vvgw) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-5zbv1tyrm4jc2zrczemlqowjsadmnicvg115mmfvoadkiw16k2-42esjdacg0ogqtggdy3y5r853 192.168.99.101:2376

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
  • Copy this command, and send it to myvm2 via docker-machine ssh to have myvm2 join your new swarm as a worker:
[root@localhost centos]# docker-machine ssh myvm2 "docker swarm join --token SWMTKN-1-1u4flv6jd4yj9eikq4hnrmge1alggfk9g8r9vi90763hq82i3k-961t050euz6f566t4gxgl2i95 192.168.99.101"
This node joined a swarm as a worker.

(注意并不需要加入端口号,虽然会提示让你加入端口号)

  • 进入一个有docker-compose.yml 的 目录,利用scp指令,把文件复制到node中。
    [root@localhost docker_fffff]# docker-machine scp docker-compose.yml myvm1:~
    docker-compose.yml

  • 运行
[root@localhost docker_fffff]# docker-machine ssh myvm1 "docker stack deploy -c docker-compose.yml getstartedlab"
Creating network getstartedlab_webnet
Creating service getstartedlab_web

*可以观察到部署在集群中的服务,会自动执行负载均衡,分布来运行的

[root@localhost docker_fffff]# docker-machine ssh myvm1 "docker stack ps getstartedlab"
ID                  NAME                  IMAGE                         NODE                DESIRED STATE       CURRENT STATE                  ERROR               PORTS
sa9rrz6rko0i        getstartedlab_web.1   ethan2lee/get-started:part1   myvm1               Running             Preparing about a minute ago                       
mi989eqde8l6        getstartedlab_web.2   ethan2lee/get-started:part1   myvm2               Running             Running 31 seconds ago  

*实验结束后,删除servies,并将两节点退出集群

[root@localhost docker_fffff]# docker-machine ssh myvm1 "docker stack rm getstartedlab"
Removing service getstartedlab_web
Removing network getstartedlab_webnet
[root@localhost docker_fffff]# docker-machine ssh myvm2 "docker swarm leave"
Node left the swarm.
[root@localhost docker_fffff]# docker-machine ssh myvm1 "docker swarm leave --force"
Node left the swarm.

转载于:https://www.cnblogs.com/Ethan2lee/p/7508849.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值