
云原生运维后端容器编排【免费下载链接】all-in-one The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.项目地址https://gitcode.com/GitHub_Trending/al/all-in-one点击查看免费下载导读Glances 是一款基于 Web 的系统监控仪表盘能够在浏览器中集中查看 CPU、内存、磁盘、网络与容器运行状态。本文以 Nextcloud All-in-OneAIO官方仓库中 community-containers/glances/readme.md 为骨架结合仓库内的 glances.json 容器定义与 PHP 后端源码完整讲解如何在 AIO 栈内一键部署 Glances、理解其 Docker 配置背后的原理、配置密码与反向代理、以及将监控数据纳入 AIO 备份体系。读完本文你将能够在自己的 AIO 实例上安全地运行 Glances并掌握社区容器体系的通用接入方法。一、Glances 社区容器是什么Glances 本身是一个跨平台的开源系统监控工具本项目以 Docker 容器的方式将其打包为 AIO 的“社区容器”Community Container。该容器的定义文件为 community-containers/glances/glances.json核心信息如下配置项值说明container_namenextcloud-aio-glances容器在 AIO 栈内的固定名称display_nameGlancesAIO 界面中显示的名称imagenicolargo/glances上游官方镜像image_taglatest-full使用包含 Web 界面功能的完整版本internal_port61208容器内 Glances Web 服务监听端口restartunless-stopped异常退出后自动重启ui_secretNEXTCLOUD_GLANCES_CADDY_PASSWORD与 Caddy 反向代理配合时用于界面登录的密码变量⚠️重要安全提示该容器会将宿主机上的 Docker Socket 挂载进容器/var/run/docker.sock因此容器拥有对宿主 Docker 引擎的管理权限。请务必只在可信环境如家庭网络中使用并理解其安全边界。容器启动后你可以直接通过http://ip.address.of.server:61208/访问 Glances 的 Web 界面。二、JSON 容器定义逐项解读glances.json 中的aio_services_v1是 AIO 社区容器的标准声明格式各字段含义如下。端口映射internal_port: 61208, ports: [ { ip_binding: , port_number: 61208, protocol: tcp } ]internal_port声明容器内部服务端口ports数组将宿主机的61208端口以 TCP 协议映射到容器内。ip_binding为空字符串表示默认绑定行为如需收紧暴露范围可以结合反向代理与防火墙策略限制访问来源。数据卷与 Docker Socketvolumes: [ { source: nextcloud_aio_glances, destination: /etc/glances, writeable: true }, { source: %WATCHTOWER_DOCKER_SOCKET_PATH%, destination: /var/run/docker.sock, writeable: false } ]nextcloud_aio_glances是 AIO 自动创建的命名卷挂载到容器内/etc/glances用于保存 Glances 的配置与运行时数据因此可以被 AIO 的备份机制捕获见下文“备份集成”一节。%WATCHTOWER_DOCKER_SOCKET_PATH%是 AIO 的占位符变量运行时会被替换为宿主机的 Docker Socket 路径通常是/var/run/docker.sock以只读方式挂载。这使 Glances 能够通过 Docker API 展示容器级监控信息也是文档中明确警告的“挂载了宿主机 Docker Socket”的来源。环境变量environment: [ GLANCES_OPT-w ]GLANCES_OPT-w是 Glances 镜像的启动参数入口-w表示以 Web 服务器模式运行对应 Glances 的-w/--webserver选项这也是端口61208提供 HTTP 仪表盘的根本原因。密钥Secret机制ui_secret: NEXTCLOUD_GLANCES_CADDY_PASSWORD, secrets: [ NEXTCLOUD_GLANCES_CADDY_PASSWORD ]这是 AIO 社区容器接入反向代理时的标准做法。后端在解析容器定义时会执行registerSecret注册密钥并在需要时按需生成见 php/src/ContainerDefinitionFetcher.phpif (isset($entry[secrets])) { // All secrets are registered with the configuration when they // are discovered so they can be later generated at time-of-use. foreach ($entry[secrets] as $secret) { $this-configurationManager-registerSecret($secret); } } $uiSecret ; if (isset($entry[ui_secret])) { $uiSecret $entry[ui_secret]; }而ConfigurationManager::getRegisteredSecret()则要求密钥必须已注册否则抛出异常见 php/src/Data/ConfigurationManager.php。这意味着只有当你启用了 Caddy 社区容器时NEXTCLOUD_GLANCES_CADDY_PASSWORD才会被生成并在 AIO 界面中展示容器本身通过ui_secret将该密钥与界面展示逻辑绑定见 php/src/Container/Container.php。三、部署步骤从 AIO 界面添加 Glances自 AIO v11 起社区容器的管理已内置到 AIO 的 Web 界面中界面最底部的“Community Containers”区块。启用 Glances 的步骤如下登录 AIO 管理界面滚动到页面最底部的Community Containers区域。勾选Glances点击Save changes。回到容器概览页面点击Start containers或 Start and update containers启动全部容器。启动完成后即可直接访问http://ip.address.of.server:61208/打开 Glances 仪表盘。⚠️ 添加任何社区容器前务必先阅读该容器目录下的 readme 文档community-containers/readme.md 明确要求先审阅文档再启用。部分社区容器之间存在兼容性问题同时启用过多容器可能导致 AIO 启动失败。社区容器由社区维护AIO 不保证其持续更新与安全使用需自担风险。启用后AIO 后端会读取该 JSON 文件并将定义合并进全局容器列表。相关实现见 php/src/ContainerDefinitionFetcher.php后端遍历aioCommunityContainers配置逐个加载community-containers/名称/名称.json通过array_merge_recursive与内置的containers.json定义合并再统一解析成Container对象。界面端则在 php/templates/includes/community-containers.twig 中渲染启用/停用开关并通过community-form提交配置。四、使用 Caddy 反向代理访问与密码机制Glances 自身没有内置认证文档明确建议仅在家用网络中使用。若想通过域名安全访问推荐配合 AIO 的Caddy 社区容器在社区容器列表中同时启用Caddy与Glances。启用后Glances 会自动通过 Caddy 暴露为https://glances.your-server.com子域名前缀由 Caddy 容器自动生成。出于安全考虑AIO 会为该地址生成一个随机密码并显示在 AIO 界面中点击 Glances 条目的“显示密钥/secret”即可查看。用户名固定为glances。这套“界面展示密钥”机制的背后就是上文提到的ui_secret与secrets字段AIO 按需生成密码getAndGenerateSecret见 php/src/Docker/DockerActionManager.php随后由 Caddy 代理在访问https://glances.your-server.com时要求 Basic Auth 认证。若你想在局域网之外访问 Glances则必须自行搭建反向代理。AIO 仓库提供了通用的反向代理配置说明见 reverse-proxy.md也可以参考 Caddy 社区容器的配置示例 community-containers/caddy/。五、备份集成监控数据随 AIO 备份Glances 的持久化数据会自动纳入 AIO 的备份方案其关键在于backup_volumes字段backup_volumes: [ nextcloud_aio_glances ]AIO 的备份逻辑会遍历各容器的backup_volumes将列出的命名卷此处为nextcloud_aio_glances即容器内/etc/glances目录对应的卷一并纳入备份归档。这意味着你无需为 Glances 单独编写备份脚本在 AIO 界面触发备份或每日自动备份时Glances 的配置数据会被同时保存恢复备份时Glances 数据也会被一同恢复。需要注意如果备份中包含社区容器数据恢复时可能需要对同一备份执行第二次恢复才能完整还原社区容器数据界面提示见 php/templates/containers.twig。六、卸载与清理若不再需要 Glances可通过 AIO 界面停用并移除该社区容器。如需彻底清理残留数据可参考 community-containers/readme.md 中的通用流程先移除容器sudo docker rm nextcloud-aio-glances清理不再使用的镜像sudo docker image prune -a检查残留卷并删除sudo docker volume ls找到nextcloud_aio_glances后执行sudo docker volume rm nextcloud_aio_glances若服务器上没有 CLI 访问权限也可以通过社区提供的 container-management 容器在 Web 会话中执行上述 Docker 命令见 community-containers/container-management/。七、常见问题与安全建议为什么访问 61208 端口没有认证因为容器默认以-w模式直接暴露 Web 服务未启用内置认证。生产环境务必叠加反向代理的 HTTP Basic Auth如 Caddy 生成的glances用户密码或将端口限制在可信网络内。Docker Socket 被挂载意味着什么Glances 借此读取 Docker API 展示容器级指标与此同时任何能访问 Glances 界面的攻击者都具备较高权限因此切勿将未认证的 Glances 暴露到公网。域名解析问题若使用 Caddy 子域名访问异常请检查 Caddy 社区容器的配置与域名 DNS 解析参见 community-containers/caddy/readme.md。恢复备份后 Glances 数据未出现确认对包含社区容器的备份执行了第二次恢复见第五节。八、延伸阅读社区容器体系总览与添加/测试方法community-containers/readme.mdGlances 容器定义 JSONcommunity-containers/glances/glances.json社区容器解析与合并源码php/src/ContainerDefinitionFetcher.php密钥注册与生成实现php/src/Data/ConfigurationManager.php、php/src/Docker/DockerActionManager.phpAIO 反向代理通用指南reverse-proxy.md内置容器完整 JSON 定义示例php/containers.json社区容器 JSON 校验 Schemaphp/containers-schema.json通过本文的配置项解读与源码佐证你可以放心地在 Nextcloud AIO 栈中启用 Glances将其作为服务器与容器的实时监控仪表盘并与反向代理、自动备份体系无缝集成。赞分享云原生运维后端容器编排【免费下载链接】all-in-one The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.项目地址https://gitcode.com/GitHub_Trending/al/all-in-one点击查看免费下载相关推荐Nextcloud AIO 部署 Gitea 社区容器子域反向代理、SSH 端口映射与备份集成实战指南Nextcloud AIO 部署 Gitea 社区容器子域反向代理、SSH 端口映射与备份集成实战指南 导读 本文围绕 Nextcloud All in On云原生运维后端容器编排Nextcloud AIO 社区容器部署 Home Assistant从家庭自动化到反向代理外网访问Nextcloud AIO 社区容器部署 Home Assistant从家庭自动化到反向代理外网访问 本指南讲解如何在 Nextcloud AIOAll i云原生运维后端容器编排AVA Node 参数传递机制全解析--node-arguments、nodeArguments 配置与 filterNodeArgumentsForWorkerThreads 过滤实践AVA Node 参数传递机制全解析 node arguments 、 nodeArguments 配置与 filterNodeArgumentsForWor云原生运维后端容器编排上一篇Claude Code Desktop 本地 Server 与 API 实战指南启动参数、访问控制、REST 与聊天 WebSocket 全解析下一篇gh_mirrors/ope/open-source-practice社区揭秘从贡献者到核心成员的成长路径创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考