docker swarm安装指导

SWARM部署DOCKER集群

[1. 简介............................................................................................................................ 3](#1. 简介............................................................................................................................ 3)

[2. 部署准备..................................................................................................................... 3](#2. 部署准备..................................................................................................................... 3)

[2.1. 系统组网图........................................................................................................ 3](#2.1. 系统组网图........................................................................................................ 3)

[2.2. 系统业务逻辑流程.............................................................................................. 4](#2.2. 系统业务逻辑流程.............................................................................................. 4)

[2.3. 部署机器准备..................................................................................................... 4](#2.3. 部署机器准备..................................................................................................... 4)

[3. 部署步骤..................................................................................................................... 4](#3. 部署步骤..................................................................................................................... 4)

[3.1. DOCKER ENGINE的安装(本文中使用root用户进行安装).................................. 4](#3.1. DOCKER ENGINE的安装(本文中使用root用户进行安装).................................. 4)

[3.2. 设置网络使DOCKER ENGINE支持远程访问,以下操作每个DOCKER SERVER都要做 4](#3.2. 设置网络使DOCKER ENGINE支持远程访问,以下操作每个DOCKER SERVER都要做 4)

[3.3. 配置swarm manager........................................................................................... 4](#3.3. 配置swarm manager........................................................................................... 4)

[3.4. 配置swarm node................................................................................................ 5](#3.4. 配置swarm node................................................................................................ 5)

[3.5. 安装docker register, 登录到docker_machine服务器做如下操作.......................... 5](#3.5. 安装docker register, 登录到docker_machine服务器做如下操作.......................... 5)

[3.6. 安装SHIPYARD,配置DOCKER SWARM MANAGE,登录到docker manager服务器做如下操作(通过配置文件来实现节点发现功能) 5](#3.6. 安装SHIPYARD,配置DOCKER SWARM MANAGE,登录到docker manager服务器做如下操作(通过配置文件来实现节点发现功能) 5)

[4. 验证............................................................................................................................ 5](#4. 验证............................................................................................................................ 5)

[5. 管理相关..................................................................................................................... 6](#5. 管理相关..................................................................................................................... 6)

[5.1. SWARM 管理命令介绍........................................................................................ 6](#5.1. SWARM 管理命令介绍........................................................................................ 6)

1.简介

本文主要介绍如何用利用docker swarm+shipyard来实现一个docker集群的部署,该方案适用于测试和开发环境,要求docker engine版本>=1.12.0。Docker Engine在1.12.0版本后自带了Docker SWARM

(注:后文中红色部分的字体请根据实际情况修改)

2.部署准备

2.1.系统组网图

|---------------|-----------------------------------------------------------|
| 模块 | 作用 |
| | |
| SWARM MANAGE | 提供API接口将SHIPYARD发过来的请求,转发到对应的DOCKER SERVER,并返回结果给SHIPYARD |
| DOCKER ENGINE | 提供 docker daemon进程来处理DOCKER SWARM MANAGE发过来的请求,并且返回结果 |
| SWARM NODE | SWARM的WORKER节点主要用于为业务容器提供运行环境 |
| | |

2.2.系统业务逻辑流程

2.3. 部署机器准备

本文中部署使用两台机器作为事例,如果要多台机器部署以此类推即可,下表格中的IP请根据具体情况修改**(注:请保证下面的机器能访问外网,并且能使用** DNS 服务)

|----------|---------|-------------------------------|---------|
| 机器名 | IP | 安装模块 | 操作系统 |
| Docker_1 | 1.1.1.1 | DOCKER ENGINE | CENTOS7 |
| Docker_2 | 1.1.1.2 | DOCKER ENGINE DOCKER REGISTRY | CENTOS7 |
| Docker_3 | 1.1.1.3 | DOCKER ENGINE | CENTOS7 |
| | | | |

3.部署步骤

3.1.DOCKER ENGINE的安装(本文中使用root用户进行安装)

参考: Install Docker Engine | Docker Docs ,根据操作系统选择对应的安装方法

3.2.设置网络使DOCKER ENGINE支持远程访问,以下操作每个DOCKER SERVER都要做

1 登录 DOCKER 服务器,执行

cd /usr/lib/systemd/system

2 编辑 docker.service 文件,找到如下行做如下修改,并保存

修改前: ExecStart=/usr/bin/dockerd

修改后: ExecStart=/usr/bin/dockerd --insecure-registry [docker_registry_addr]

3 在防火墙中做如下配置,打开对 2377 端口的限制和对 docker0 端口的限制

firewall-cmd --permanent --zone=public --add-port=2377/tcp

firewall-cmd --permanent --zone=trusted --add-interface=docker0

firewall-cmd --reload

​​​​​​​3.3.配置swarm manager

登录到swarm manage的机器上,执行

复制代码
               docker swarm init --advertise-addr [swarm_manager_ip]
复制代码
           执行后会得到类似如下信息
复制代码
             Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager.
复制代码
复制代码
             To add a worker to this swarm, run the following command:
复制代码
               docker swarm join \
复制代码
               --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
复制代码
               192.168.99.100:2377
复制代码
复制代码
            To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

​​​​​​​3.4.配置swarm node

登录到docker-machine的机器上,执行上一步喜欢建SWARM MANAGER时候提示的加入NODE的语句

复制代码
               docker swarm join \
复制代码
               --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
复制代码
               192.168.99.100:2377
复制代码
            如果记不到语句了可以使用如下命令来查看加入语句:
复制代码
               docker swarm join-token worker

​​​​​​​3.5.安装docker registry, 登录到docker_machine服务器做如下操作

1 在要安装registry的机器上的/tmp/registry目录下增加配置文件config.yml内容如下(请严格按照格式缩进):

log:

fields:

service: registry

storage:

cache:

blobdescriptor: inmemory

filesystem:

rootdirectory: /var/lib/registry

delete:

enabled: true

http:

addr: :5000

headers:

X-Content-Type-Options: [nosniff]

health:

storagedriver:

enabled: true

interval: 10s

threshold: 3

2 进入docker环境,输入如下命令

复制代码
              docker run -d -p 5000:5000 --restart=always --name registry -v /tmp/registry/config.yml:/etc/docker/registry/config.yml registry:2

4.管理相关

​​​​​​​4.1.SWARM 管理命令介绍

(参考URL:https://docs.docker.com/engine/swarm/swarm-tutorial/)

docker swarm: 用于创建加入swarm node和swarm manager

docker info: 查看当前SWARM集群信息

docker node ls:查看当前SWARM 节点信息

docker service:用于操作当前swarm中的service

复制代码
           
相关推荐
lingggggaaaa几秒前
小迪安全v2023学习笔记(一百三十四讲)—— Windows权限提升篇&数据库篇&MySQL&MSSQL&Oracle&自动化项目
java·数据库·windows·笔记·学习·安全·网络安全
跟着珅聪学java23 分钟前
Eureka 客户端状态为 DOWN 的解决方案
云原生·eureka
迦蓝叶30 分钟前
JAiRouter v1.0.0 正式发布:企业级 AI 服务网关的开源解决方案
java·运维·人工智能·网关·spring·ai·开源
安卓开发者35 分钟前
鸿蒙NEXT应用接入快捷栏:一键直达,提升用户体验
java·harmonyos·ux
yudiandian201443 分钟前
03 Eclipse 配置 JDK 环境
java·ide·eclipse
_码力全开_43 分钟前
P1005 [NOIP 2007 提高组] 矩阵取数游戏
java·c语言·c++·python·算法·矩阵·go
陈一Tender1 小时前
JavaWeb后端实战(登录认证 & 令牌技术 & 拦截器 & 过滤器)
java·开发语言·spring boot·mysql
Camel卡蒙1 小时前
红黑树详细介绍(五大规则、保持平衡操作、Java实现)
java·开发语言·算法
孤廖1 小时前
吃透 C++ 栈和队列:stack/queue/priority_queue 用法 + 模拟 + STL 标准实现对比
java·开发语言·数据结构·c++·人工智能·深度学习·算法