Vagrantfile
# -*- mode: ruby -*-# vi: set ft=ruby :Vagrant.require_version ">= 1.6.0"boxes = [ { :name => "swarm-manager", :eth1 => "192.168.205.10", :mem => "1024", :cpu => "1" }, { :name => "swarm-work1", :eth1 => "192.168.205.11", :mem => "1024", :cpu => "1" }, { :name => "swarm-work2", :eth1 => "192.168.205.12", :mem => "1024", :cpu => "1" }]Vagrant.configure(2) do |config| config.vm.box = "centos/7" boxes.each do |opts| config.vm.define opts[:name] do |config| config.vm.hostname = opts[:name] config.vm.provider "virtualbox" do |v| v.customize ["modifyvm", :id, "--memory", opts[:mem]] v.customize ["modifyvm", :id, "--cpus", opts[:cpu]] end config.vm.network :private_network, ip: opts[:eth1] end end config.vm.synced_folder ".", "/vagrant", :disabled => true config.vm.synced_folder "./labs", "/home/vagrant/labs", :nfs => true config.vm.provision "shell", privileged: true, path: "./setup.sh"end
创立manager节点
vagrant ssh swarm-managerdocker swarm init --advertise-addr=192.168.205.10Swarm initialized: current node (xk4srb722hwekv4vhkzgaq1ti) is now a manager.To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-0c8b3a47nnjzclttnhhgdnl5mhfh8qic89wvq65yuddmgw46d5-43luksaph5upfe7b7gkx9t3ss 192.168.205.10:2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
创立worker节点
如果报错:Error response from daemon: rpc error: code = Unavailable desc = grpc: the connection is unavailable,可能是因为有其余章节正在启动的虚拟机用了与swarm-manager雷同的ip
vagrant ssh swarm-work1docker swarm join --token SWMTKN-1-0c8b3a47nnjzclttnhhgdnl5mhfh8qic89wvq65yuddmgw46d5-43luksaph5upfe7b7gkx9t3ss 192.168.205.10:2377vagrant ssh swarm-work2docker swarm join --token SWMTKN-1-0c8b3a47nnjzclttnhhgdnl5mhfh8qic89wvq65yuddmgw46d5-43luksaph5upfe7b7gkx9t3ss 192.168.205.10:2377
查看节点
#docker node ls只能在manager节点上执行[vagrant@swarm-manager ~]$ docker node lsID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSIONxk4srb722hwekv4vhkzgaq1ti * swarm-manager Ready Active Leader 18.05.0-ceie6azlh3y4qgyemteziufon7j swarm-work1 Ready Active 18.05.0-cewwaea67e4lbk5vn1y5r8i0uw9 swarm-work2 Ready Active 18.05.0-ce