使用Portainer集中管理多地域内网运行的Docker实例

Docker图形化界面工具Portainer最佳实践 的连接实例,可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。我们只需要点击容器列表,找到我们的主动节点容器,然后分别进入他们的管理列表最下方,找到。 阅读详情

1. 单机运行的Docker

容器化部署是现在进行时,开源应用大多数支持容器化部署在少量机器的场景下往往采用docker cli 和 docker-compose管理,进行“单机式管理”机器稍多点会采用Docker Swarm群集的方式,毕竟k8s稍重如果有更多的机器情况下一般会采用k8s的方式在个人、创业公司、小团队的场景下我们往往在多个云、家里、vps上拥有少量虚拟机服务器,这些服务器上都运行了docker实例虽然我们也可以用公网vpn、zerotier等方式打通各个地域的机器形成一个内网,从而构建“群集”,但实际情况是没那么多带宽,从而无法“负载均衡”,所以实际的实际还是独立使用受限制于公网带宽很小,只能独立使用我们也拥有一些4G移动流量接入这种EDGE边缘场景的情况,这些IoT上也运行着Docker实例那么这些NAT内网环境下的Docker实例,公网IP环境下的Docker实例,是否能集中管理?当然可以,用Portainer就挺方便

2. 用Portainer作为Docker实例管理平台实战步骤

2.1 主节点-Portainer server主控安装

选一个7x24小时且有公网IP的节点运行Portainer server主控

docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /data/appdata/portainer:/data portainer/portainer

9000端口为web管理界面端口8000端口为Agent接入端口这2个端口公网IP防火墙都必须放行

浏览器打开web管理界面http://Portainer server主控公网IP:9000

初次访问设置一个密码,设置密码后需要选择连接docker的方式选第一个Local 然后点击Connect默认进入Home菜单,点击这个Local本地docker实例进入其他管理

Portainer官方安装手册参考

2.2 配置https nginx代理(可选)

如果不配置https可跳过本节http://你的公网IP:9000 默认没有https不安全规划一个域名用于https访问例如https://portainer.iamle.com用nginx作为接入反向代理到 http://portainerip:9000下面为示例nginx portainer配置(其中包含需要的websocket proxy)

# portainer.iamle.com.conf
map $http_upgrade $connection_upgrade {
    default Upgrade;
    ''      close;
}
upstream portainer {
    server 127.0.0.1:9000;
}
server {
        listen       80;
        server_name portainer.iamle.com;
        return      301 https://$server_name$request_uri;
}
server {

                listen 443 ssl http2;
        server_name portainer.iamle.com;

                ssl_certificate         ssl/iamle.com.cer;
                ssl_certificate_key     ssl/iamle.com.key;
                #ssl_session_cache           shared:SSL:10m;
                #ssl_session_timeout         10m;
                #ssl_session_tickets         off;

                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                ssl_ciphers         HIGH:!aNULL:!MD5:!EXPORT56:!EXP;
                ssl_prefer_server_ciphers on;

        location / {
                    proxy_set_header Host              $host;
                    proxy_set_header X-Forwarded-Proto $scheme;
                    proxy_set_header X-Forwarded-Port  $server_port;
                    proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
                    proxy_set_header X-Real-IP         $remote_addr;
                    proxy_set_header X-Request-Id $request_id;
                    proxy_set_header Upgrade           $http_upgrade;
                    proxy_set_header Connection        $connection_upgrade;
                    proxy_read_timeout 60m;
                    proxy_send_timeout 60m;
                    proxy_http_version 1.1;
                    proxy_pass http://portainer;
                    break;
        }


        error_log   /data/logs/portainer.iamle.com-error.log;
        access_log  /data/logs/portainer.iamle.com.log access;

}

2.3 主节点-配置一个在NAT内网Agent客户端

前面我们已经配置好一个具有公网IP的Portainer管理控制节点那么现在把内网(NAT、IoT)、公有云、vps等运行的Docker实例来接入控制节点管理

一图胜千言,官方介绍图图中这个Portainer管理了2个内网的Agent其中一个是个Swarm群集,另外一个是个单机

Portainer server上增加一个Edge AgentEndpoints菜单 》 Add endpoint 》 Edge Agent

Name:为自定义Portainer server URL:默认为当前Portainer server ip (如果用nginx配置了https可以使用https不加端口号)》 Add endpoint

增加端点后出现

部署客户端agent 有2种选择 Standalone 和 Swarm如果已经组过Swarm那么选Swarm,默认就是Standalone先点击 “Copy command” 复制命令,在Agent客户端去执行Public IP: 如果有可以设置,这样在以后部署了docker容器暴露的端口可以自动生成url

2.4 被管理节点-需要被管理的Docker实例客户端机

在被管理的客户端终端上执行(内网(NAT、IOT)、公网环境都可以,只要能连接上我们的Portainer server)本例内网1台ip为 192.168.0.8的机器

docker run -d -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes -v /:/host --restart always -e EDGE=1 -e EDGE_ID=6ad0f1ff-6fea-4710-97e2-513ef1066fd8 -e CAP_HOST_MANAGEMENT=1 -p 8000:80 -v portainer_agent_data:/data --name portainer_edge_agent portainer/agent:1.5.1

访问 http://192.168.0.8:8000(如果有公网ip用公网ip)打开后会有个输入框输入上一步获得的Join token点击Submit 出现 Agent setup OK. You can close this page. 代表完成agent接入

回到 Portainer server管理界面等待上线

点击 iamle-lan-01 等待几秒钟

这样我们就可以管理多个docker实例了

3. 贴士

  • 如果agent运行不起来,无限重启
    需要根据docker logs portaineredgeagent 获取到的错误信息排查, 官方github issue是个好去处
    另外发现2019年10月19日16:55:01 pull 下来的portainer/agent:latest 也运行不起来 改为 portainer/agent:1.5.1正常
  • Stacks粘贴docker-compose.yml进来后一直报version版本不对
    目前只支持version 2 改为2即可

4. 参考

Portainer Edge Agent 官方发布Portainer内网边缘节点配置说明书PDF

流水理鱼 发布!

Docker老鸟的Portainer进阶玩法:用它统一管理多台服务器的容器集群 本文深入探讨了如何使用Portainer这一可视化容器管理工具,实现从单机到多服务器Docker集群的统一管理。通过详细解析Portainer的核心组件、多节点部署实战、高级端点配置技巧以及生产环境最佳实践,帮助Docker老鸟提升容器集群管理效率。文章特别强调了TLS安全连接配置和混合环境管理方案,为复杂场景下的容器管理提供了专业解决方案。 阅读详情

相关推荐

Docker-可视化管理工具总结-推荐使用Portainer

对于初学docker的小白,一款好的可视化工具有助于快速掌握docker基本形态和概念,下面针对docker可视化工具做些总结 ui-for-docker# UI For Docker是一个使用Docker Remote API的web接口,目的是提供一个简洁纯净的客户端实现,为了连接和管理Docker; 该工具目前已经无人维护,建议使用下面介绍的portainer docker run -it -d --name docker-web --restart always -p 9000:9000 -v .

DevOps在路上|专注于团队研发效能,欢迎来到我的博客,这里有来自一线DevOps实践者的知识分享 2972

portainer(1):使用 1.22.0 版本,二进制搭建服务端环境,修改端口,agent连接成功

前言 本文的原文连接是: https://blog.youkuaiyun.com/freewebsys/article/details/100717108 未经博主允许不得转载。 博主地址是:http://blog.youkuaiyun.com/freewebsys 1,关于portainer 是一个开源的,轻量化的docker集群管理系统。 非常的方便好用,使用中小型企业,管理1000 个服务器足够了。底层是基于 ...

freewebsys的专栏 4186

容器管理工具-Portainer

本文介绍了如何安装Portainer,已及多台服务器通过agent连接Portainer。

m0_49929446的博客 1553

docker生态-容器管理工具portainer

文章目录介绍安装部署汉化说明初始密码说明最终的docker-compose通过nginx代理时的小注意参考: 介绍 Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。 通过portainer服务端,连接agent,达到管理agent节点上docker容器的目的

和木的专栏 1376

【云原生】portainer管理多个独立docker服务器

Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境,并且,由于portainer本身也是个容器,所以,寥寥几行代码就可以召唤出来。进入home----dashboard界面,所有信息一目了然,这样的界面呈现给甲方爸爸,谁不爱~?

Sp_Tizzy的博客 5402

【R语言】富集分析可视化代码(整理版)

分别介绍了如何使用DAVID在线分析工具对基因进行GO/KEGG功能富集分析、使用R ggplot包对获得的基因GO/KEGG功能富集结果进行可视化、使用R clusterProfiler包和R AnnotationHub包对基因进行GO/KEGG功能富集分析、OrgDb包制作以及结果可视化等。故,我重新整理了一波,并补充了可对多个分组的富集结果进行可视化以及富集结果绘制圈图等的代码。关注“在打豆豆的小潘学长”公众号,发送“富集分析3”获得完整代码包和演示数据。一、单组富集结果可视化。

weixin_54004950的博客 1万+

docker集群部署portainer

docker集群部署portainer

qq_44637753的博客 839

Windows下高效部署llama.cpp:从环境配置到模型量化的完整指南

本文提供了一份详尽的Windows系统下部署llama.cpp的完整指南。内容涵盖从Python环境配置、使用CMake与MinGW编译工具链的搭建,到编译llama.cpp项目、获取并转换模型为GGUF格式,以及执行模型量化和基础推理测试的全过程。指南旨在帮助开发者在普通Windows电脑上,无需高端显卡,仅凭CPU即可高效运行大语言模型,并重点解决了部署过程中常见的环境与编译错误。

weixin_28841265的博客 879

「实战篇」开源项目docker化运维部署-Portainer管理集群部署(十)

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢! 原文链接地址:「实战篇」开源项目docker化运维部署-Portainer管理集群部署(十) 之前都是通过命令的方式,管理docker的,其实docker还是有图形界面的。使用图形界面如何管理docker,其实业界很多公司都对docker进行了图形化的封装。之前在初级和中级的时候也有界面marathon。这里说下业界比较出名的p...

IT架构圈博客 535

Unity事件总线第一篇:为什么你的游戏需要一个事件总线?

本文探讨了游戏开发中常见的跨模块调用导致代码强耦合的问题。通过一个攻击按钮触发角色攻击、怪物掉血和血条更新的案例,分析了直接调用方式带来的维护困难、扩展性差和模块重用性低等弊端。文章提出使用事件总线(Event Bus)作为解决方案,通过发布-订阅模式实现模块解耦。重构后的代码中,各模块只需与事件总线交互,彼此不再直接依赖。这种设计使得新增功能(如音效)无需修改现有代码,大大提高了系统的可维护性和扩展性,同时增强了模块的重用性,完美体现了开闭原则。

qq_46348216的博客 1298

STM32实战:滑模观测器与PLL锁相环融合的FOC无感控制精解

本文深入解析了STM32平台下结合滑模观测器(SMO)与PLL锁相环的无感FOC控制技术。通过实战案例详细介绍了PLL锁相环在消除SMO高频抖振、提升角度跟踪精度方面的关键作用,并分享了工程调参技巧、C语言实现细节及系统联调方法,为电机控制开发者提供了一套完整的解决方案。

weixin_30838873的博客 188

告别 Docker 命令行繁琐操作!Portainer+cpolar 让内网容器管理自由

Portainer 通过可视化方式简化了 Docker 的日常管理操作,降低了运维门槛,而 cpolar 则突破了局域网的限制,实现了 Portainer 的安全远程访问。二者结合,让不同场景下的 Docker 管理都能更灵活、高效,满足个人和小团队的日常运维需求。

yunjianyue1314的博客 1万+

INFFUS 2025 | DDBFusion:基于双重分解和贝塞尔曲线的统一图像分解与融合框架

现有的图像融合算法大多集中于网络架构和损失函数的设计,采用统一的特征提取策略,却忽略了冗余信息和有效信息的划分。然而,对于互补信息而言,统一的特征提取器可能并不适用。因此,本文提出了一种基于贝塞尔曲线图像增强和分层分解的统一图像融合算法,并构建了一个自监督学习任务来学习有意义的信息。其中,贝塞尔曲线旨在模拟不同的图像特征,并构建特殊的自监督学习样本,因此作者的方法不需要特定任务的数据,并且可以在公共自然图像数据集上轻松进行训练。同时,作者的双重分解自监督训练方法可以为模型赋予冗余信息过滤能力。

小白学视觉 306

腾讯云部署OpenClaw Skills:AI技能库的Docker化实践与生产环境配置

在AI智能体开发领域,技能库框架是实现复杂任务自动化的核心组件。其原理是通过模块化设计,将通用能力封装为可复用的技能单元,开发者可像搭积木一样组合调用。这种架构的技术价值在于显著降低AI应用开发门槛,提升功能迭代效率。典型应用场景包括自动化工作流、智能助手和数据分析管道。本文聚焦于OpenClaw Skills这一开源技能库框架,详细解析如何在腾讯云环境中通过Docker Compose实现容器化部署,涵盖从服务器选型、网络配置到安全加固的全流程实践。针对国内开发者特别优化了镜像加速和中文支持方案,确保部署

weixin_33850015的博客 567

VCAST创建单元测试工程

选择工作目录,后面创建胡UT工程将会生成到这个目录。

qq_42851449的博客 2479

2023.03.27更新大麦网PC端抢购软件和使用教程

近期发现大麦网页端抢购页面悄然发生变化,之前可以在页面选择票价、档次,并且点击按钮进行购票,现在不行了,新的页面如下图所示。已经安全没有了点击按钮,因此,但是并不代表不能像以前之前那样。

猫敷雪 1万+

通过Portainer统一管理不同服务器的Docker

通过Portainer统一管理不同服务器的Docker一、可视化管理工具Portainer的安装二、跨服务器管理Docker2.1开启2375监听端口2.2Portainer配置远程管理 一、可视化管理工具Portainer的安装 参照本Docker专栏内的相关文章: Docker可视化管理工具Portainer 二、跨服务器管理Docker 需求描述如下:A、B两台服务器都安装有Docker服务...

爱是与世界平行 3482

看28377代码笔记

使用的是20MHz外部晶振,为取200MHz系统时钟,倍频设为20,分频设为2,这样sysclock = 20MHz * 20 / 2,正好200MHz。注意:SPISTE配置成普通的GPIO端口,是为了更好控制芯片,配置芯片的时序。FMULT_0:小数点位数,小数只能有0,0.25,0.5,0.75四个选择。XTAL_OSC:表示使用外部晶振。GPIO_MUX_CPU1:复用类型。GPIO_MUX_CPU1:复用类型。PLLCLK_BY_2:表示2分频。IMULT_20:表示倍频数。

小柚子的博客 805

portainer

添加Edge Endpoint,前提是portainer容器要暴露8000端口: 3步骤里,添加的是portainer所在服务器地址,接着在需要被监控的服务器里安装portainer-agent 然后配置需要被监控的服务器ip地址,然后更新终点信息 ...

weixin_39548163的博客 4755

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

6. Docker - 图形化界面 portainer、CIG

官网文档官方文档 -

LawssssCat的博客 1210

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

基础在线:如何搭建docker环境完整教程和镜像设置

执行后可能会报错(软件包不存在等)但不必理会。

初学者的专栏 469

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

portainer创建脚本(docker可视化管理),portainer管理其他节点docker教程

portainer创建脚本(docker可视化管理),portainer管理其他节点docker

席__的博客 9万+

使用Portainer的Agent模式管理DockerSwarm集群

在一个四节点规模的docker swarm集群上,使用Portainer的Agent模式进行集群管理。

zz960226的博客 1262

Docker 三剑客

链接: docker-machine 提取码: 6itu [root@server1 ~]# mv docker-machine-Linux-x86_64-0.16.1 /usr/local/bin/docker-machine [root@server1 ~]# chmod +x /usr/local/bin/docker-machine [root@server1 ~]# ssh-keygen [root@server1 ~]# ssh-copy-id server2: [root@server1

Sun__s的博客 604

portainer安装

#portainer-ce docker run -d -p 9001:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data registry-dev.uihcloud.cn/hsw/portainer/portainer-ce #portainer/agent docker run -d -p 9001:9001 --name=porta...

JDBogdan的博客 810
上一篇: API接口访问频次限制 / 网站恶意爬虫限制 / 网站恶意访问限制 方案
下一篇: Service Mesh服务网格清单
流水理鱼
博客等级 码龄19年 7粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值