您的位置:首页 > 运维架构 > Docker

『中级篇』docker-swarm创建一个多节点集群(43)

2018-09-10 16:25 771 查看
>原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
>原文链接地址:『中级篇』docker-swarm创建一个多节点集群(43)

docker Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。源码地址:https://github.com/limingios/docker中的No.5

创建3台虚拟机

还是通过vagrant + virtualbox的方式来创建

源码文件夹



查看创建虚拟机的源码

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.require_version ">= 1.6.0"

boxes = [
{
:name => "swarm-manager",
:mem => "1024",
:cpu => "1"
},
{
:name => "swarm-worker1",
:mem => "1024",
:cpu => "1"
},
{
:name => "swarm-worker2",
: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 "vmware_fusion" do |v|
v.vmx["memsize"] = opts[:mem]
v.vmx["numvcpus"] = opts[:cpu]
end

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, type: "dhcp"
end
end

config.vm.synced_folder "./labs", "/home/vagrant/labs"
config.vm.provision "shell", privileged: true, path: "./setup.sh"

end










用SecureCRT连接着3个虚拟机

查看每个虚拟机的ip地址
vagrant ssh swarm-manager
#swarm-manager的ip是172.28.128.3
ip a


![](https://upload-images.jianshu.io/upload_images/11223715-ad3619672ae9886b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![](https://upload-images.jianshu.io/upload_
5b4
images/11223715-e7e7b767549fdd32.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

``` bash
vagrant ssh swarm-worker1
#swarm-worker1的ip是172.28.128.4
ip a






vagrant ssh swarm-worker2
#swarm-worker2的ip是172.28.128.5
ip a








创建docker-swarm集群

swarm-manager 建立manager
sudo docker swarm init --help
sudo docker swarm init --advertise-addr=172.28.128.3






swarm-worker1 和 swam-worker2 连接manager
sudo service docker restart
docker swarm join --token SWMTKN-1-1vafvfucsur6iqd6ba5i2njty6djvzxnhwefsmar4sivcg8isi-dgm1aigtcu1rtotfc8y43j17m 172.28.128.3:2377




swarm-manager 查看连接状态
docker node ls




PS:这样基本上通过docker-swarm完成集群管理。

往期精彩

docker导学(一)

容器的技术概述(二)

docker的魅力初体验-5分钟安装wordpress不走弯路(三)

docker官网介绍(四)

如何在mac上安装docker(五)

如何在window上安装docker(六)

如何在mac上通过vagrant安装虚拟机(七)

如何在window上通过vagrant安装虚拟机(八)

docker-Machine的本地使用(九)

docker-Machine的本地使用(十)

在linux/mac下通过Docker-Machine在阿里云上的使用(11)

docker架构和底层技术(12)

docker Image概述(13)

手动建立一个base Image(14)

什么是Container(15)

构建自己的Docker镜像(16)

Dockerfile详解(17)

镜像的发布(18)

Dockerfile实战(19)

容器的操作(20)

Dockerfile实战CMD和ENTRTYPOINT的配合(21)

容器的资源限制(22)

docker网络(23)

docker学习必会网络基础(24)

Linux网络命名空间(25)

Docker Bridge详解(26)

容器之间的Link(27)

容器的端口映射(28)

容器网络之host和none(29)

多容器复杂应用的部署(30)

overlay网络和etcd实现多机的容器通信(31)

docker的数据持久化存储和数据共享(32)

windows下vagrant 通过SecureCRT连接centos7(33)

数据持久化之Data Volume(34)

数据持久化之bind Mounting(35)

docker 使用bind Mounting实战(36)

docker容器安装wordpress(37)

docker Compose到底是什么(38)

Docker Compose的安装和基本使用(39)

Docker 水平扩展和负载均衡(40)

Docker compose 部署一个复杂的应用(41)

容器编排Docker Swarm介绍(42)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息