本人Docker的第一篇文章:使用vagrant、VirtualBox的安装centos7
1、在E:\data\vagrant目录下,新建che-vagrant02目录,将virtualbox.box文件copy一份到che-vagrant02目录下,
2、在cmd“命令提示符”窗口中,进入E:\data\vagrant\che-vagrant02目录,执行下面的命令
# 添加centos box
vagrant box add my-centos7 ./virtualbox.box
# 初始化centos box
vagrant init my-centos7
che-vagrant02目录下会多出一个Vagrantfile文件,如下图
3、编辑Vagrantfile文件内容,如下
Vagrant.configure("2") do |config|
config.vm.define "vagrant1" do |vb|
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 1
end
vb.vm.host_name = "vagrant1"
vb.vm.network :public_network, ip: "192.168.1.21"
vb.vm.box = "my-centos7"
end
config.vm.define "vagrant2" do |vb|
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 1
end
vb.vm.host_name = "vagrant2"
vb.vm.network :public_network, ip: "192.168.1.22"
vb.vm.box = "my-centos7"
end
config.vm.define "vagrant3" do |vb|
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 1
end
vb.vm.host_name = "vagrant3"
vb.vm.network :public_network, ip: "192.168.1.23"
vb.vm.box = "my-centos7"
end
end
然后,在cmd"命令提示符"中输入vagrant up启动配置的三台centos7虚拟机
在VirtualBox管理器中可以看到三台centos7虚拟机都已启动
4、进入到vagrant1虚拟机中,修改修改 /etc/ssh/sshd_config文件,启动密码、设置密码、重启虚拟机,具体步骤,请查看我本人Docker的第一篇文章:使用vagrant、VirtualBox的安装centos7
虚拟机vagrant2、vagrant2也进行同样的操作。
5、使用ssh客户端工具MobaXterm连接三个centos7如下图
进入到vagrant2中,ping vagrant1、vagrant3的ip,可以ping通
6、在3台centos7虚拟机中安装Docker
具体的安装步骤,请参考本人的另外一篇文章:在Centos7中安装Docker
7、使用Docker Swarm建立主从集群
在vagrant1虚拟机中通过docker swarm init -h命令查看docker swarm命令,通过docker swarm init --advertise-addr=192.168.1.21命令,初始化vagrant1虚拟机为leader节点
docker swarm init -h
docker swarm init --advertise-addr=192.168.1.21
设置vagrant1为leader节点后,将打印信息中的红框中的信息copy一下,如下,在vagrant1中执行docker node ls查看集群的所有节点,现在只有vagrant1一个leader节点。
docker swarm join --token SWMTKN-1-0nu1fjnh5sb4c9296tzesfg8r32asyzhxt67zv7j9s60x8qloz-68f8w41o8mbba1dp7gmtf3w3s 192.168.1.21:2377
将上面的那个命令copy一下,然后在vagrant2、vagrant3两个虚拟机中执行,
在vagrant1中执行docker node ls,查看集群的所有节点,如下图,vagrant1是leader节点,vagrant2、vagrant3是work节点
通过下面的命令可以将vagrant2升级为leader节点、降级为work节点
# 将vagrant2升级为leader节点
docker node promote vagrant2
# 将vagrant2降级为work节点
docker node demote vagrant2