阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

通过Swarm搭建Docker集群

502次阅读
没有评论

共计 3217 个字符,预计需要花费 9 分钟才能阅读完成。

Swarm 介绍

Docker自诞生以来,其容器特性以及镜像特性给 DevOps 爱好者带来了诸多方便。然而在很长的一段时间内,Docker只能在单 host 上运行,其 跨 host的部署、运行与管理能力颇受外界诟病。跨 host 能力的薄弱,直接导致 Docker 容器与 host 的紧耦合,这种情况下,Docker容器的灵活性很难令人满意,容器的迁移、分组等都成为很难实现的功能点。

Swarm是 Docker 公司在 2014 年 12 月初新发布的容器管理工具。和 Swarm 一起发布的 Docker 管理工具还有 Machine 以及 Compose。

Swarm是一套较为简单的工具,用以管理 Docker 集群,使得 Docker 集群暴露给用户时相当于一个虚拟的整体。Swarm 使用标准的 Docker API 接口作为其前端访问入口,换言之,各种形式的 Docker Client(dockerclient in go, docker_py, docker 等)均可以直接与 Swarm 通信。Swarm 几乎全部用 Go 语言来完成开发,并且还处于一个 Alpha 版本,目前在 github 上发布的版本仅有 v0.1.0-rc1。然而 Swarm 的发展十分快速,功能和特性的变更迭代还非常频繁。因此,可以说 Swarm 还不推荐被用于生产环境中,但可以肯定的是 Swarm 是一项很有前途的技术。

端口监听

Swarm是通过监听 2375 端口进行通信的,所以在使用 Swarm 进行集群管理之前,需要设置一下 2375 端口的监听。这里有两种方法,一种是通过修改 docker 配置文件方式,另一种是通过一个轻量级的代理容器进行监听。

修改配置文件修改监听端口(推荐)

由于我是使用 CentOS7 安装的 docker,所以下面的配置是适用于Centos7 的。
打开配置文件/etc/sysconfig/docker

 vim /etc/sysconfig/docker

修改配置项 OPTIONS 中的值,若 OPTIONS 中没有值,则直接添加-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock,否则在已有参数后面添加,比如下面这样:

OPTIONS='--selinux-enabled --log-driver=journald 
    --signature-verification=false  
    -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'

修改完之后保存文件,然后重启 docker 服务

systemctl restart docker

注意:需要对所有要加入集群的 docker 节点都进行上面的修改配置文件的操作。

使用 docker-proxy 代理服务

默认情况下,Docker引擎只侦听套接字。我们可以重新配置引擎以使用 TLS,或者您可以使用代理容器。这是一个非常轻量级的容器,它只是将请求从TCP 转发到 Docker 监听的Unix 套接字

先通过 docker pull 命令下载镜像

docker pull docker.io/shipyard/docker-proxy

然后启动容器:

docker run -ti -d -p 2375:2375 \
    --restart=always \
    --hostname=$HOSTNAME \
    --name shipyard-proxy \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e PORT=2375 \
    docker.io/shipyard/docker-proxy:latest

注意:该代理服务容器也需要在每个要加入集群的 docker 节点上启动,同时要保证该容器的正常运行,如果容器停止则无法发现节点。

搭建 Docker 集群

拉取 Swarm 镜像

docker pull docker.io/swarm

生成唯一 token

在任意的 docker 节点创建一个全世界唯一的 token(集群 ID), 记住这个token 后面需要用到。(这里用的发现服务是 dockhub 内置的,当然还有其他的比如 etcd、consul 等。)

docker run --rm swarm create

rw4d3ac32aa6a86b341e3asd69e2cd0b

执行上面的命令之后,会生成一个 token。

启动 Swarn Manager

docker run -ti -d -p 2376:2375 \
    --restart=always \
    --name shipyard-swarm-manager \
    docker.io/swarm:latest \
    manage --host tcp://0.0.0.0:2375 \
    token://rw4d3ac32aa6a86b341e3asd69e2cd0b

Swarn Manager 只需要启动一个,所以可选取一个 docker 节点进行启动,我这里是在我这块的主机 10.0.11.150 上启动的。

启动 Swarm Agent

启动 Swarm agent,将当前docker 节点加入到集群中,Swarm Agent需要在每一个要加入到集群中的 docker 节点上启动。

docker run -ti -d \
    --restart=always \
    --name shipyard-swarm-agent \
    docker.io/swarm:latest \
    join --addr [docker node ip]:2375 \
    token://rw4d3ac32aa6a86b341e3asd69e2cd0b

注:上面这条命令中的 [docker node ip] 项需要更换为要加入集群的 docker 节点的真实 IP。

查看 docker 节点情况

可以使用命令查看 docker 节点情况(任意 docker 节点上都可以执行):

docker run --rm swarm list token://rw4d3ac32aa6a86b341e3asd69e2cd0b

查看 docker 集群详情

可以使用命令查看 docker 集群的详情(可在任意 docker 节点上执行,IP 地址是装了 Swarm Master 主机的 IP):

docker -H 10.0.11.150:2376 info

更多 Docker 相关教程见以下内容

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 16.04 服务器上配置使用 Docker  http://www.linuxidc.com/Linux/2017-06/145176.htm 

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

Docker 安装实例 http://www.linuxidc.com/Linux/2017-04/142666.htm 

Docker 创建基础镜像  http://www.linuxidc.com/Linux/2017-05/144112.htm 

在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm 

Ubuntu 16.04 上 Docker 使用手记 http://www.linuxidc.com/Linux/2016-12/138490.htm 

使用 Docker 分分钟启动常用应用  http://www.linuxidc.com/Linux/2017-04/142649.htm 

Ubuntu 16.04 下 Docker 修改配置文件不生效解决办法  http://www.linuxidc.com/Linux/2017-05/143862.htm 

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149579.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3217字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7984746
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统 大家好,我是星哥。公司的项目文档存了一堆 ...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...