Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令。目前,Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具。它可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。
Docker 使用 Swarm 可以很方便的在多个主机上创建容器集群,并且容器之间可以跨主机网络通信。
Swarm 的集群分为 Manager 节点和 Worker 节点。
Swarm 中使用 Service 来创建/管理使用相同镜像的多个容器,多个容器同时对外提供服务,多个容器之间负载均衡。每个 Service 有一个浮动IP(VIP),各个容器还有自己的物理IP。创建基于 Swarm 的 Overlay 网络,将 Service 挂载到此网络上。然后 Service 中的各个容器便可以通过 Service 名称和 IP 地址实现网络互通。
下面使用了三个机器来组建一个Swarm集群
bd0 192.168.0.109
bd1 192.168.0.192
bd2 192.168.0.193
Docker 开启远程管理
默认情况下,Docker守护进程会生成一个 /var/run/docker.sock 文件来进行本地进程通信,而不会监听任何端口,所以默认情况下 Docker 只能在本地使用命令行操作。 如果要在其它机器上远程操作 Docker 主机,就需要让 Docker 监听一个端口,这样才能实现远程通信。
在我的 CentOS 7X 上,首先修改 Docker 配置文件 /etc/sysconfig/docker 中的 OPTIONS 参数,添加
-H unix:///var/run/docker.sock -H 0.0.0.0:5555
修改后参数类似
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false -H unix:///var/run/docker.sock -H 0.0.0.0:5555'
然后重新启动 Docker 服务
$ sudo systemctl restart docker.service
测试一下
sudo docker -H
创建 Swarm 集群
获取 Swarm 镜像
分别在三个节点上下载swarm镜像
$ sudo docker pull swarm
初始化Swarm集群
首先在 bd0 节点上初始化 Swarm 集群
$ sudo docker swarm init Error response from daemon: could not choose an IP address to advertise since this system has multiple addresses on different interfaces (192.168.0.109 on eth0 and 192.168.122.1 on virbr0) - specify one with --advertise-addr
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款