===============================================

2019/4/9_第3次修改                       ccb_warlock

更新说明:

2019/4/9:重新整理了docker swarm的部署步骤

2018/12/14:精简docker-compose部署的命令;

增加18.09.0-ce以后的hosts(2.3 配置hosts信息)配置方法;

===============================================

由于k8s的方案被搁置了,目前只能先考虑使用swarm搭建小规模的集群。经过几天对swarm的使用,对于与docker相关的docker-compose、service、stack相关内容有了更明确的理解。对比swarm与k8s也是各有千秋。

2019/4/9,重新整理了swarm的部署顺序,将docker的安装部分拆分到centos7 部署 docker ce,根据节点类型分别整理了部署步骤。


一、准备工作

1.1 修改主机名(可以不修改)

为了便于区分节点,用主机名来标记节点
manager节点执行:

hostnamectl --static set-hostname manager01

worker节点执行:

hostnamectl --static set-hostname worker01

修改完后,重新开shell控制台。


二、管理节点(Manager)

2.1 安装docker ce

可以参考下面的文章安装docker ce

centos7 部署 docker ce:https://www.cnblogs.com/straycats/p/10680502.html

2.2 配置hosts信息

2.2.1 18.06.1-ce及以前版本

# 修改docker daemon配置

mkdir -p /etc/docker
vim /etc/docker/daemon.json

增加hosts的内容,wq保存。

{
"hosts": ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
}

2.2.2 18.09.0-ce及以后版本

systemctl edit docker

将下面的内容添加到文件(/etc/systemd/system/docker.service.d/override.conf)中,wq保存。

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

# 重新加载systemctl的配置

systemctl daemon-reload

2.3 重启docker

systemctl restart docker

2.4 创建swarm集群

# 初始化swarm集群(我使用的虚拟机IP为192.168.12.11)

docker swarm init

# 创建集群(当宿主机有多个IP时,需要指定IP)

docker swarm init --advertise-addr 192.168.12.11

创建后,该节点为manager节点(leader)。

如果需要添加其他管理节点,可以使用下面的命令查看作为管理节点加入集群的命令。

docker swarm join-token manager 

三、工作节点(Worker)

3.1 安装docker ce

可以参考下面的文章安装docker ce

centos7 部署 docker ce:https://www.cnblogs.com/straycats/p/10680502.html

3.2 配置hosts信息

3.2.1 18.06.1-ce及以前版本

# 修改docker daemon配置

mkdir -p /etc/docker
vim /etc/docker/daemon.json

增加hosts的内容,wq保存。

{
"hosts": ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
}

3.2.2 18.09.0-ce及以后版本

systemctl edit docker

将下面的内容添加到文件(/etc/systemd/system/docker.service.d/override.conf)中,wq保存。

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

# 重新加载systemctl的配置

systemctl daemon-reload

3.3 重启docker

systemctl restart docker 

3.4 将该工作节点添加到swarm集群中

# 查看作为工作节点接入集群的命令

docker swarm join-token worker

# 将自己注册到该集群(192.168.12.11)

docker swarm join --token SWMTKN-1-1w1q09p1z37n4j24usz9lwb0i01t2ecuxn4ad5ctfdpks4270r-5p5mmiw6u77skwd49sxovztxc 192.168.12.11:2377

PS.命令中的token信息根据实际情况更换。


参考资料:

1.https://stackoverflow.com/questions/51923078/unable-to-start-the-docker-daemon-if-file-etc-docker-daemon-json-exist

2.https://docs.docker.com/engine/reference/commandline/dockerd/

centos7 部署 docker swarm的更多相关文章

  1. centos7 部署 docker compose

    =============================================== 2019/4/10_第1次修改                       ccb_warlock == ...

  2. centos7 部署 docker ce

    =============================================== 2019/4/9_第1次修改                       ccb_warlock === ...

  3. centos7 部署 docker、shipyard

    =============================================== 2019/4/9_第3次修改                       ccb_warlock 更新说 ...

  4. 部署docker swarm集群

    基础环境 机器名称 IP地址 安装的软件 node-1 192.168.10.190 docker-ce node-2 192.168.10.191 docker-ce node-3 192.168. ...

  5. CentOS-7部署Docker容器

    为了适应当前容器化的部署方式,故最近也在对docker进行学习.目前的理解是docker服务就像一艘货船,而你的各项服务可以封装在一个个集装箱里,而且在docker里服务的启动非常快,故有必要从基础的 ...

  6. 通过docker-machine和etcd部署docker swarm集群

    本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使 ...

  7. centos7 在docker swarm中运行Jenkins,利用gitlab的webhook触发自动部署脚本

    1.宿主机中创建目录 mkdir -p /jenkins_home 2.编辑compose文件,文件名jenkins.yml version: '3.4' services: jenkins-upgr ...

  8. 容器基础(八): 使用docker swarm部署程序

    环境 基于上一节的env/server:v0.1, env/worker:v0.1镜像, 在基于debian8.2的两台机器上测试部署docker swarm. docker service部署 ➜ ...

  9. 故障公告:docker swarm集群“群龙无首”引发部分站点无法访问

    今天傍晚 17:38-18:18 左右,由于 docker swarm 集群出现 "The swarm does not have a leader" 问题,造成博问.闪存.园子. ...

随机推荐

  1. 初学Hadoop之单机模式环境搭建

    本文仅作为学习笔记,供大家初学Hadoop时学习参考.初学Hadoop,欢迎有经验的朋友进行指导与交流! 1.安装CentOS7 准备 CentOS系统镜像CentOS-7.0-1406-x86_64 ...

  2. PAT 甲级 1087 All Roads Lead to Rome

    https://pintia.cn/problem-sets/994805342720868352/problems/994805379664297984 Indeed there are many ...

  3. SpringBoot 3.SpringBoot 整合 MyBatis 逆向工程以及 MyBatis 通用 Mapper

    一.添加所需依赖,当前完整的pom文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&qu ...

  4. Oracle VirtualBox添加虚拟机

    Oracle VirtualBox添加虚拟机 我的台式机是毁灭者,主板是华硕主板:安装的系统是win7 64bit.本来默认打算在该机器上面安装virtualBox,然后在virtualBox上面安装 ...

  5. 新版 Chrome Ajax 跨域调试

    一.前言 web 开发中 Ajax 是十分常见的技术,但是在前后端使用接口对接的调试过程中不可避免会碰到跨域问题.今天我给大家介绍一个十分简单有效的方法. 跨域经典错误 二.Chrome 跨域设置 首 ...

  6. BZOJ2734 HNOI2012集合选数(状压dp)

    完全想不到的第一步是构造一个矩阵,使得每行构成公比为3的等比数列,每列构成公比为2的等比数列.显然矩阵左上角的数决定了这个矩阵,只要其取遍所有既不被2也不被3整除的数那么所得矩阵的并就是所有的数了,并 ...

  7. MySQL存储引擎对比

    MySQL存储引擎对比 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的存储引擎 大家应该知道MySQL的存储引擎应该是表级别的概念,因为我们无法再创建databas ...

  8. Hadoop上传文件时报错: could only be replicated to 0 nodes instead of minReplication (=1)....

    问题 上传文件到Hadoop异常,报错信息如下: org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /home/inpu ...

  9. 转:IOS 基于APNS消息推送原理与实现(JAVA后台)

    Push的原理: Push 的工作机制可以简单的概括为下图   图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple ...

  10. python---django中模板布局

    对于页面大部分一样,我们可以使用模板布局来简化 可以查看tornado中的模板引擎,基本一致 python---tornado模板引擎 对于相同代码部分,我们可以提取出来,放在布局文件layout.p ...