DcokerSwarm + Portainer 安装部署

本文主要是搭建(基于内网),其余知识可自行百度

一:简单来了解Docker Swarm

在这里插入图片描述
 Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/swarm, 它是将一群Docker宿主机变成一个单一的虚拟主机,Swarm使用标准的Docker API接口作为其前端的访问入口,换言之,各种形式的Docker

Client(compose,docker-py等)均可以直接与Swarm通信,甚至Docker本身都可以很容易的与Swarm集成,这大大方便了用户将原本基于单节点的系统移植到Swarm上,同时Swarm内置了对Docker网络插件的支持,用户也很容易的部署跨主机的容器集群服务。

Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。

从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中(docker swarm),并且已经内置了服务发现工具,我们就不需要像之前一样,再配置 Etcd 或者 Consul 来进行服务发现配置了。

Swarm deamon只是一个调度器(Scheduler)加路由器(router),Swarm自己不运行容器,它只是接受Docker客户端发来的请求,调度适合的节点来运行容器,这就意味着,即使Swarm由于某些原因挂掉了,集群中的节点也会照常运行,放Swarm重新恢复运行之后,他会收集重建集群信息。

二:准备两台服务器或者虚拟机

角色IP
master192.168.31.60
node192.168.31.31

三:安装Docker

  • 系统要求:
    Docker 支持 64 位版本 CentOS 7/8,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。

[root@localhost /]# uname -a
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

  • 卸载旧版本
    旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:

    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-selinux \
                      docker-engine-selinux \
                      docker-engine
     
    
  • 首先创建安装离线docker的目录

    mkdir /opt/docker_install
    cd /opt/docker_install
     
    

    上传3个文件: docker-19.03.5.tgz docker.service install.sh
    地址:下载:https://wwr.lanzoui.com/ikeDBu6sc0b
    在这里插入图片描述

  • 安装docker

    sh install.sh  docker-19.03.5.tgz
    

在这里插入图片描述
出现以上内容即可安装成功。
测试docker启动容器 (用完可删除,下面不需要nginx)

docker run -it -p 8989:80 nginx

使用docker run启动容器时报错:docker: Error response from daemon: OCI runtime create failed: container_linux.go:449;container init caused “write /proc/self/attr/keycreate: permission denied”": unknown.

问题原因:由于操作系统已启用SELinux,造成“/proc/self/attr/keycreate” 没有写入权限 使用命令:getenforce查看SELinux运行模式
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

三:安装Docker Swarm

需要注意的是:
1.集群确保都在一个网段。2个网段能够同时访问。
2.准备至少2台服务器,master节点: 192.168.31.60 node节点: 192.168.31.31

  • 主节点执行命令:
    主节点: 192.168.31.60 这里在master节点下创建主节点
     docker swarm init \
     --advertise-addr 192.168.31.60:2377 \
     --listen-addr 192.168.31.60:2377
    

docker swarm init会通知 Docker 来初始化一个新的 Swarm,并将自身设置为第一个管理节点。同时也会使该节点开启 Swarm 模式。
–advertise-addr 指定其他节点用来连接到当前管理节点的 IP 和端口。这一属性是可选的,当节点上有多个 IP 时,可以用于指定使用哪个IP。此外,还可以用于指定一个节点上没有的 IP,比如一个负载均衡的 IP。

--listen-addr 指定用于承载 Swarm 流量的 IP 和端口。其设置通常与 --advertise-addr 相匹配,但是当节点上有多个 IP 的时候,可用于指定具体某个 IP。并且,如果 --advertise-addr 设置了一个远程 IP 地址(如负载均衡的IP地址),该属性也是需要设置的。建议执行命令时总是使用这两个属性来指定具体 IP 和端口。

Swarm 模式下的操作默认运行于 2377 端口。虽然它是可配置的,但 2377/tcp 是用于客户端与 Swarm 进行安全(HTTPS)通信的约定俗成的端口配置
在这里插入图片描述
docker swarm join-token 命令用来获取添加新的工作节点和管理节点到 Swarm 的命令和 Token。

复制生成加入主节点的命令和token 在从节点执行即可成功。
在这里插入图片描述
在主节点查看集群节点:

docker node ls 

在这里插入图片描述
在这个过程中,每个节点的 Docker 引擎都被切换到 Swarm 模式下。并且,Swarm 已经自动启用了 TLS 以策安全。
注意,master 的 ID 列还显示了一个星号(*),这个星号会告知用户执行docker node ls 命令所在的节点。本例中,命令是在 主节点执行的。

四:安装Portainer镜像

  • 概述
    PortainerDocker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。

  • 汉化
    集群主节点上运行Portainer
    创建目录,并解压文件

mkdir -p /data/portainer/data /data/portainer/public
unzip Portainer-CN.zip -d public

下载地址:https://wwr.lanzoui.com/ikeDBu6sc0b
在这里插入图片描述
运行Portainer

docker run -d --restart=always --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer/data:/data -v /data/portainer/public:/public portainer/portainer:1.24.1

登录Portainer
访问地址:{主节点ip}:9000/
第一登录需要设置用户名密码
在这里插入图片描述

这时候DockerSwarm+ Portainer就搭建成功啦!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值