1. 创建虚机:

First, quickly create a virtual switch for your virtual machines (VMs) to share, so they will be able to connect to each other.

  1. Launch Hyper-V Manager
  2. Click Virtual Switch Manager in the right-hand menu
  3. Click Create Virtual Switch of type External
  4. Give it the name myswitch, and check the box to share your host machine's active network adapter

Now, create a couple of VMs using our node management tool, docker-machine:

docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1

docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm2

 

  1. 查看创建的机器的ip:

$ docker-machine ls

NAME    ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS

myvm1   -        virtualbox   Running   tcp://192.168.99.100:2376           v17.06.2-ce   

myvm2   -        virtualbox   Running   tcp://192.168.99.101:2376           v17.06.2-ce   

 

  1. 将当前环境切换到myvm1上。

docker-machine env myvm1 | Invoke-Expression

运行这个命令后,后面所有的命令就是针对myvm1的了。

如果不想再针对myvm1, 就可以执行docker-machine env –u | Invoke-Expression,或者直接切换到其他虚机也可以。

 

  1. 初始化swarm

docker swarm init --advertise-addr <myvm1 ip>

 

  1. 或者加入worker需要的token.

docker swarm join-token worker

执行完以后会得到一个命令,拷贝下来后面用,命令的格式为:

docker swarm join \

--token <token> \

<myvm1 ip>:<port>

注:如果需要将myvm2加成manager, 就执行docker swarm join-token manager.

 

  1. 将当前环境切换到myvm2:

docker-machine env myvm2 | Invoke-Expression

 

  1. 将myvm2加入到swarm中。

运行步骤5中拷贝的命令。

  1. 此时如果将env切换到myvm1,并且运行docker node ls, 就会出现类似的结果。

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

brtu9urxwfd5j0zrmkubhpkbd myvm2 Ready Active

rihwohkh3ph38fhillhhb84sk * myvm1 Ready Active Leader

 

posted on 2017-10-25 13:41  今夜太冷  阅读(692)  评论(0编辑  收藏  举报