1. 程式人生 > >Docker創建虛機和swarm

Docker創建虛機和swarm

erro 初始 machines ssi 一個 zrm advertise adapt too

  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

?

Docker創建虛機和swarm