【Docker】Docker Swarm集群+Portainer控制台配置安装

简介: Docker Swarm集群+Portainer控制台配置安装

Docker Swarm Docker 的集群管理工具。它将Docker 主机池转变为单个虚拟 Docker 主机。swarm 集群由管理节点(manager)和工作节点(work node)构成。

swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。

work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。


开启Docker API

修改配置文件

vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 
修改为 
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

image.jpeg

重启服务

[root@master ~]# systemctl daemon-reload

[root@master ~]# systemctl restart docker

 

swarm集群创建

主节点开启

[root@master ~]# docker swarm init --advertise-addr 192.168.1.10

#创建好主节点时会提示—token配置参数,在配置子节点时需要使用该参数(如图)

image.jpeg

 

子节点开启

使用命令docker swarm join --token

[root@node ~]# docker swarm join --token SWMTKN-1-55cvdjet5qrnkayuaa70aozysu3ztjh1ic21y0x8gw9sb5fgcb-b2om9dp4scs452l4gkqmd0814 192.168.1.10:2377
This node joined a swarm as a worker.

 

可使用命令查询join使用的token

docker swarm join-token worker

image.jpeg

 

 

使用docker node ls查询节点状态

[root@master ~]# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
y8xp0iwjwkmfbxq4rc6qfekpc *   master              Ready               Active              Leader              18.09.6
cscxignpj1qb60c4y8dsgf7s7     node                Ready               Active                                  18.09.6

image.jpeg

 

swarm集群使用

部署服务

部署一个httpdservice,创建名称为web-server

[root@master ~]# docker service create --name web-server httpd
iwjwdip5t893m58tetpegh6wu
overall progress: 1 out of 1 tasks 
1/1: running  [==================================================>] 
verify: Service converged

 

查看服务状态

查看当前集群中的service

[root@master ~]# docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                        PORTS
iwjwdip5t893        web-server          replicated          1/1                 httpd:latest

         

 

查看部署的web-server状态

[root@master ~]# docker service ps web-server
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
ggrt8ldrjts3        web-server.1        httpd:latest        node                Running             Running 45 seconds ago      
#此时web-server的NODE为node节点,状态为running

 

 

服务伸缩/拓展副本

将服务数增加副本,同时运行多个实例

service scale可调整副本数,增加或减少

 

[root@master ~]# docker service scale web-server=5
web-server scaled to 5
overall progress: 5 out of 5 tasks 
1/5: running  [==================================================>] 
2/5: running  [==================================================>] 
3/5: running  [==================================================>] 
4/5: running  [==================================================>] 
5/5: running  [==================================================>] 
verify: Service converged


 

#此时查看服务状态就有5web-server部署在node节点或master节点

[root@master ~]# docker service ps web-server
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE             
ggrt8ldrjts3        web-server.1        httpd:latest        node                Running             Running 6 minutes ago                            
ue2rls32fdyi        web-server.2        httpd:latest        master              Running             Running 41 seconds ago                           
n5e626vifmv8        web-server.3        httpd:latest        node                Running             Running about a minute ago                       
iq7y8ru24oy5        web-server.4        httpd:latest        master              Running             Running 41 seconds ago                           
tp56mrrszkel        web-server.5        httpd:latest        node                Running             Running about a minute ago

 

服务访问

web-server80端口映射到外部

[root@master ~]# docker service update --publish-add 80:80 web-server
web-server
overall progress: 5 out of 5 tasks 
1/5: running  [==================================================>] 
2/5: running  [==================================================>] 
3/5: running  [==================================================>] 
4/5: running  [==================================================>] 
5/5: running  [==================================================>] 
verify: Service converged

 

测试

image.png

 

 

 

 

 

 

Portainer安装

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

 

Master 节点,安装 Portainer

[root@master ~]# docker service create --name portainer --publish 9000:9000 --replicas=1 --constraint 'node.role == manager' --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock --mount type=volume,src=portainer_data,dst=/data portainer/portainer -H unix:///var/run/docker.sock 
wbpvqhg13fzrqrwl7epcbhqgo
overall progress: 1 out of 1 tasks 
1/1: running  [==================================================>] 
verify: Service converged

 

portainer以一个容器服务开启,可在容器进程中查询

[root@master ~]# docker ps

image.jpeg

 

 

网页访问http://ip:9000

首次登陆设置用户密码

image.jpeg

登陆后控制台首页

image.jpeg

相关文章
|
Kubernetes 关系型数据库 文件存储
手把手教你完成极空间 NAS Docker 镜像加速配置
本教程详细介绍了如何在极空间NAS上配置轩辕镜像加速器,以提升Docker镜像的下载速度与稳定性。内容涵盖账号注册、网络确认、加速器设置及验证方法,并提供常见问题解决方案,帮助用户高效完成容器化应用部署。
4741 1
|
文件存储 数据安全/隐私保护 开发者
群晖NAS Docker镜像源加速配置教程
本教程介绍了群晖NAS用户如何通过配置轩辕镜像加速服务提升Docker镜像拉取速度。内容包括配置前准备、详细设置步骤及日常使用说明,帮助用户快速完成配置并享受高效稳定的镜像下载体验。
6726 60
|
10月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
956 6
|
Docker 容器 文件存储
飞牛fnOS Docker镜像加速配置全攻略
本文介绍了如何在飞牛fnOS中配置Docker镜像加速服务,通过设置轩辕镜像仓库加速器,提升镜像拉取速度与稳定性。内容涵盖配置前准备、加速源设置、首选加速源调整及使用指南,帮助用户高效完成镜像操作。
8207 56
|
Prometheus 监控 Cloud Native
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
1037 79
|
Java 分布式数据库 Docker
使用Docker配置并连接HBase的Java API
本流程概要的解释了如何在Docker上配置并启动HBase服务,并通过Java API进行连接和操作表,不涉及具体的业务逻辑处理和数据模型设计,这些因应用而异需由开发者根据实际需求进行实现。
555 13
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
1830 4
java实战项目超市管理系统控制台版
java实战项目超市管理系统控制台版
348 0
|
Java
【Java开发指南 | 第二十篇】Java流之控制台
【Java开发指南 | 第二十篇】Java流之控制台
354 2