学习笔记--Docker集群Swarm(搭建篇)

ps:博客用与记录个人学习过程中遇到的一些问题以及解决方案。若有表述不当之处还请见谅。

简述

docker swarm 能极方便使用者部署轻量级分布式应用,无需了解过多原理即可轻松部署环境,也是docker系列原生分布式环境的入门框架。

搭建

首先最好是需要准备2台以上的设备

第一步

我们在manage主机上开始初始化swarm:

docker swarm init

注意:系统默认会开启2377端口以作各个节点与主机之间的交互。所以所有节点以及主机都得开启2377端口。

输入一下代码以验证是否启动swarm

docker info

如图swarm正常运行
学习笔记--Docker集群Swarm(搭建篇)_第1张图片

第二步

切换在节点主机操作

管理主机在初始化swarm集群之后会给出节点主机如何加入集群当命令,复制粘贴运行即可,如果找不到命令了可以输入以下命令查询

docker swarm join-token worker

你会获得以下信息(图片来自docker官网文档,侵删):
图片来自docker官网文档,侵删
复制docker swarm join …2377 并在节点主机运行即可。

在这当中我遇到的几个问题,附上百度到到以及我的解决方案(若无以下问题可直接跳过)
问题一:

Error response from daemon: Timeout was reached before node joined. The attempt to join the swarm will continue in the background. Use the “docker info” command to see the current swarm status of your node.

意思是连接不上你的swarm管理主机。
以下是网上一道解决方案,他能提供很多帮助。

https://my.oschina.net/u/3195712/blog/817314

当我进行到最后一步发现, 我的节点主机确实无法连接上swarm管理主机,最后发现是因为我将mac当作管理主机使用…
好的, 我们换做另外一台服务器,当另外一台服务器做完以上步骤之后, 发现另外一个错误:
问题二:

Error response from daemon: --live-restore daemon configuration is incompatible with swarm mode

继续百度,在以下连接发现解决方案:

http://www.chinacloud.cn/show.aspx?id=25332&cid=22

将/etc/docker/daemon.json文件中‘live-restore’参数改为false即可, 再次运行第二步骤命令
至此swarm节点连接成功
可在管理主机输入命令:

docker node ls

你会发现除了主机之外还有另外一台节点机(图片来自docker官网文档,侵删)。
图片来自docker官网文档,侵删

基础设置

标签

在使用swarm过程中, 系统会自动分配服务到各个节点。然而在现实使用中通常会出现想让某服务运行在特定类型或特定服务器上的情况,这时可以通过给node打标签实现。

docker node update --label-add key=value ‘节点名’ 

node update可以更新节点信息, --label-add为节点添加标签。(ps: 有关docker node其他方法可通过docker node --help查看)

结语

以上内容是自己在搭建环境中遇到的问题、解决方法和相关配置。有关应用方面可参考应用篇。

你可能感兴趣的:(docker)