尧图精选

Dozzle 主机名(Hostname)配置指南:通过 --hostname 与 DOZZLE_HOSTNAME 定制多主机界面标识

🕒 发布时间:2026/9/14 18:19:02 📁 来源:尧图网络
Dozzle 主机名Hostname配置指南通过 --hostname 与 DOZZLE_HOSTNAME 定制多主机界面标识【免费下载链接】dozzleRealtime log viewer for containers. Supports Docker, Swarm and K8s.项目地址: https://gitcode.com/GitHub_Trending/do/dozzleDozzle 默认将本机 Docker 连接命名为localhost这一标识会同时出现在浏览器页面标题、侧边栏 Dozzle Logo 下方以及多主机Multi-Host菜单中。本文以 Dozzle 官方文档 docs/de/guide/hostname.md 为主体结合仓库内 CLI 参数解析、前端标题渲染与多主机/Agent 的实现细节完整讲解如何通过--hostname标志或DOZZLE_HOSTNAME环境变量修改 Dozzle 的显示名称并阐明它在 Multi-Host、远程 Agent 与 Swarm 模式下的行为边界与最佳实践。读完本文你将能独立完成单实例重命名、Agent 命名以及 Swarm 多节点区分等典型配置。为什么需要自定义 Dozzle 的 HostnameDozzle 是一个面向容器的实时日志查看器支持 Docker、Docker Swarm 与 Kubernetes。默认情况下Dozzle 指向本机 Docker 守护进程并将这条连接称为localhost。当你在同一台服务器上管理多个 Dozzle 实例或在多主机环境中同时接入多台机器时仅靠 localhost 无法区分不同来源因此 Dozzle 提供了--hostname这个显示名称配置项。该值并非修改系统主机名而仅仅是 Dozzle 用于界面展示的名称。配置后它会在以下三个位置生效浏览器标签页/页面标题Page Title标题以Dozzle hostname的形式呈现侧边栏 Dozzle Logo 下方的副标题Subheader以等宽小字显示在 Logo 之下多主机菜单Multi-Host Menu中的连接名称原本显示为localhost的连接条目会改用新名称。快速上手用 --hostname 修改显示名称文档给出了两种等价方式CLI 标志与 Docker Compose 环境变量。二者的效果完全相同可按部署习惯任选其一。方式一docker run 命令行标志docker run --volume/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle --hostname mywebsite.xyz--volume/var/run/docker.sock:/var/run/docker.sock挂载 Docker Socket让 Dozzle 访问本机容器-p 8080:8080暴露 Web 端口--hostname mywebsite.xyz将 Dozzle 的显示名称设置为mywebsite.xyz。方式二docker-compose.yml 环境变量services: dozzle: image: amir20/dozzle:latest volumes: - /var/run/docker.sock:/var/run/docker.sock ports: - 8080:8080 environment: DOZZLE_HOSTNAME: mywebsite.xyz两种写法最终都会在启动参数解析阶段被统一读取。从源码看internal/support/cli/args.go 中的Args结构体通过 go-arg 库声明了Hostname string \arg:env:DOZZLE_HOSTNAME help:sets the hostname for display. This is useful with multiple Dozzle instances.即--hostname标志与DOZZLE_HOSTNAME 环境变量指向同一个字段二者互斥时环境变量与标志遵循 go-arg 的解析优先级。该参数的官方帮助文本也直接点明了它的使用场景多 Dozzle 实例并存时用于区分显示。默认值与相关参数速查在 docs/guide/supported-env-vars.md 的全局环境变量表中与显示名称相关的条目如下Flag环境变量默认值--hostnameDOZZLE_HOSTNAME空字符串即回退到默认的 localhost 标识--host-idDOZZLE_HOST_ID覆盖 Dozzle 推导出的主机 ID仅在 ID 与其他主机冲突时需要注意--hostname只影响显示名称而--host-id影响的是主机身份的推导与去重逻辑二者职责不同不要混淆。配置生效的完整链路为了确认该配置确实作用于界面可以沿前端渲染链路逐层验证。服务端下发配置在 internal/web/index.go 中服务端把配置项写入config[hostname] h.config.Hostname随后随页面初始化数据一并下发到浏览器前端 store 在 assets/stores/config.ts 中声明hostname: string字段承接该值。页面标题的拼接逻辑assets/composable/app/title.ts 定义了浏览器标题的生成规则const { hostname } config; let subtitle $ref(); const title $computed(() (subtitle ? ${subtitle} - : ) Dozzle (hostname ? ${hostname} : )); useTitle($$(title));可见标题的组成是可选副标题如当前容器/主机上下文 固定 Dozzle 可选的 hostname后缀。当hostname为空时不追加后缀配置为mywebsite.xyz后浏览器标签页即显示Dozzle mywebsite.xyz。侧边栏 Logo 下的副标题assets/components/shell/SidePanel.vue 在侧边栏的 Dozzle 品牌区下方渲染small classtext-base-content/45 mt-1.5 block truncate font-mono text-xs v-ifhostname :titlehostname {{ hostname }} /smallv-ifhostname保证未配置时不显示该行配置后则以等宽字体、小字号展示完整名称truncate处理超长名称的截断:title提供悬浮完整提示。多主机菜单中的连接标签侧边栏导航中的主机条目读取的是主机对象自身的名称assets/components/nav/HostNavItem.vue 中NavItem的:label与:title都绑定为host.name。对于本机连接host.name即来自DOZZLE_HOSTNAME配置对于远程连接则来自 Agent 上报的名称。此外在日志视图中还有一处可选的 Hostname 展示开关多容器/多主机日志工具栏中的显示主机名选项见 assets/components/logs/MultiContainerActionToolbar.vue 与 assets/components/logs/entries/LogItem.vue它控制每条日志前是否渲染来源主机的彩色标签与本文的主机命名配置相互配合。Multi-Host 与 Agent 模式下的命名行为这是本文档的核心边界说明--hostname只重命名正在运行该 Dozzle 进程的那台主机不会影响其他主机条目的显示。远程 Agent 的独立命名在多主机架构中Dozzle 支持以 Agent 模式暴露远程 Docker 主机在远程机器上以agent子命令启动 Dozzle本地主 Dozzle 实例即可通过 TLS 安全连接将其纳入多主机视图详见 docs/guide/agent.md。每个远程 Agent 都会广播自己的名称而不是沿用主实例的--hostname。因此在每个 Agent上分别设置DOZZLE_HOSTNAME或--hostname即可控制该 Agent 在多主机菜单中的显示名称主 Dozzle 实例的--hostname仅代表其自身本地连接不能替远程 Agent 改名。Swarm 模式下的逐节点命名在 Docker Swarm 模式下每个 Swarm 节点都会运行自己的 Agent 进程见 docs/guide/swarm-mode.md。为了让多主机菜单中的各节点清晰可辨应当为每个节点赋予互不相同的 hostname例如按节点角色或机器名命名否则多个节点都会显示为相同的默认名称难以定位日志来源。推荐配置模式综合上述规则一个典型的多主机部署应遵循以下命名策略角色配置位置建议取值主 Dozzle 实例本机连接主实例环境变量/标志如DOZZLE_HOSTNAME: main-server远程 Agent每台远程主机各 Agent 的环境变量/标志按机器命名如DOZZLE_HOSTNAME: node-01Swarm 节点 Agent各节点 Agent 的环境变量/标志每个节点互不相同常见问题与注意事项不修改操作系统主机名--hostname/DOZZLE_HOSTNAME是纯 UI 层显示名称与hostname(1)、容器内/etc/hostname无关也不影响 Docker 守护进程的识别。空字符串即默认参数默认值为不设置时 Dozzle 按默认逻辑以 localhost 命名本机连接。区分--hostname与--host-id前者是给人看的显示名称后者是用于主机身份去重的内部 IDinternal/support/cli/args.go 中声明为 overrides the id Dozzle derives for this host. Only needed when the derived id collides with another host.仅在推导出的 ID 与另一主机冲突时才需要覆盖。Agent 与 Socket 代理不可叠加官方文档明确提示使用远程 Agent 时不能再在 Agent 之上叠加 Docker Socket 代理Agent 本身就是代理的替代方案此限制与命名配置一并纳入多主机部署规划docs/guide/agent.md。小结自定义 hostname 是 Dozzle 多实例、多主机运维中最基础也最实用的配置之一。通过--hostname mywebsite.xyz或等价地DOZZLE_HOSTNAME你可以让页面标题、侧边栏副标题与多主机菜单中的连接名称保持一致且易于辨识在多主机与 Swarm 场景下切记该配置只作用于当前进程所在主机远程 Agent 需要逐台独立命名Swarm 各节点则应使用彼此不同的名称。这套命名规范将显著提升多节点日志定位与日常排障的效率。【免费下载链接】dozzleRealtime log viewer for containers. Supports Docker, Swarm and K8s.项目地址: https://gitcode.com/GitHub_Trending/do/dozzle创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →