Komari 探针端 (Agent) Docker里面跑

Komari 是一款出色的轻量级服务器探针,找了一圈没找到docker里面跑 Agent的成品,手搓一个

本帖子写了如何使用 Dockerfile 和 Docker Compose 自己动手打包 Agent,使其完行在 Docker 容器中,各位佬献丑了。


第一步:创建 Agent 目录

在你的探针机(宿主机)上,创建一个专门的文件夹来存放我们的配置文件。

mkdir komari-agent-docker
cd komari-agent-docker

第二步:创建 Dockerfile

在这个新目录中,创建一个名为 Dockerfile 的文件,将以下内容粘贴进去。

这个文件会在构建时自动从官方源拉取最新的 Agent 程序并打包成一个最小化的镜像。

# --- 阶段 1: 下载器 (Builder) ---
# 使用 alpine 作为基础镜像,并命名为 builder
FROM alpine:latest AS builder

# 安装 curl 用于下载
RUN apk add --no-cache curl

# Docker 会自动传入这个构建参数 (例如 amd64 或 arm64)
ARG TARGETARCH

# 根据架构设置文件名和下载 URL
ENV AGENT_FILE "komari-agent-linux-${TARGETARCH}"
ENV DOWNLOAD_URL "https://github.com/komari-monitor/komari-agent/releases/latest/download/${AGENT_FILE}"

# 执行下载并赋予执行权限
# 我们将下载的文件重命名为 /agent-binary 以方便复制
RUN curl -sL ${DOWNLOAD_URL} -o /agent-binary && \
    chmod +x /agent-binary


# --- 阶段 2: 最终镜像 (Final Image) ---
# 使用一个全新的、干净的 alpine 镜像
FROM alpine:latest

# 安装 HTTPS 连接所需的证书 (Agent 需要)
RUN apk add --no-cache ca-certificates

WORKDIR /app

# 从 builder 阶段复制已下载并赋权的 Agent 执行文件
COPY --from=builder /agent-binary /app/komari-agent

# 设置容器的启动命令
ENTRYPOINT [ "/app/komari-agent" ]

第三步:创建 docker-compose.yml

同一个目录下,创建 docker-compose.yml 文件。

services:
  agent:
    build: .
    container_name: komari-agent
    restart: unless-stopped
    
    # --- 权限配置 ---
    # 必须:使用宿主机网络,否则网络数据不准
    network_mode: host
    # 必须:给予特权,才能读取硬件信息
    privileged: true
    
    # --- 挂载配置 (解决 /proc 冲突的最终版) ---
    volumes:
      # 允许写入 /proc (解决启动冲突的关键)
      - /proc:/proc
      
      # 其他的保持只读
      - /sys:/sys:ro
      - /dev:/dev:ro
      - /etc/localtime:/etc/localtime:ro
      - /etc/os-release:/etc/os-release:ro

    # --- !!! 关键:填入你的真实参数 !!! ---
    command: >
      --endpoint "http://你的Komari服务器IP或域名:端口"
      --token "你在Komari仪表盘上获取的密钥"

第四步:【关键】修改启动参数

这是最重要的一步。打开你刚创建的 docker-compose.yml 文件,找到最后的 command: 部分:

    command: >
      --endpoint "http://你的Komari服务器IP或域名:端口"
      --token "你在Komari仪表盘上获取的密钥"

请将 http://你的Komari服务器IP或域名:端口 和 你在Komari仪表盘上获取的密钥 替换成你从 Komari 仪表盘 “添加服务器” 页面获取到的真实信息。

第五步:构建并启动

确保你的 Dockerfile 和 docker-compose.yml 都在同一个目录中,并且你已经修改好了参数。在该目录下,运行以下命令来构建镜像并启动容器:

docker-compose up -d --build

等待命令执行完毕。如果一切顺利,你的 Agent 容器就已经在后台运行了。现在去你的 Komari 仪表盘查看,探针应该已经上线了!

原创文章,作者:mantou,如若转载,请注明出处:https://v2ez.com/1572.html

(0)
mantoumantou
上一篇 2025年10月31日
下一篇 2025年11月29日

相关推荐

  • 如快-跨平台启动器

    之前一直在 mac 端使用 Raycast 这款启动器,觉得挺好用也挺好看的,特别是里面的快捷链接功能,非常的好用。 后面每次用自己的 Windows 的时候,总是感觉少了点什么,…

    2025年6月30日
  • 如何查看并干净卸载所有容器和docker

    1.查看所有运行的容器 docker ps -a 2.停止所有容器,并删除所有容器 docker stop $(docker ps -q) & docker rm $(do…

    代码程序 2021年10月3日
  • 使用docker搭建Ghost博客教程

    1. docker安装并开机自启 curl -fsSL https://get.docker.com -o get-docker.sh && sh get-dock…

    2023年2月6日
  • “无痕测试,基准系统,一键导出”,NodeQuality测试脚本发布

    新脚本是原NodeBench脚本和粘贴板的升级项目,实现了一些关键特性升级: 全面拥抱脚本方案,补充其他测试信息,减少重复测试 切换到一个专用的临时准系统内测试,测完自动清理,极致…

    代码程序 2025年3月24日
  • 3种方式修改 wordpress 用户名

    在数字化时代,WordPress作为世界上最流行的开源内容管理系统之一,被无数网站管理员和个人用户所使用,以创建和管理他们的在线存在。然而,随着用户的不断变更和安全需求的提高,修改…

    2025年7月15日
  • 为什么要用 Git

    〇 版本控制 比如,你晚上写一篇论文,写好了存起来。结果第二天早上起来,你再拿出来一看,害,写的什么啊。早上修改了一大堆,改完了存起来。结果下午一想,害,早上我改什么啊!昨晚那个写…

    代码程序 2024年9月29日
  • Nginx 反向代理ddns网站

    由于一些原因,需要反向代理一些ip经常变化的站点,最初以为只要把域名填好就行,ip变化的时候,nginx会根据ddns域名来回源,但是事实并非如此,在每一次更换ip地址之后,都要r…

    代码程序 2021年5月16日
  • cloudflare配置详解

    本篇文章会以我目前的能力,来尽量解释cloudflare每一个功能,肯定会有错误 欢迎指出 可以点击右侧目录调转到自己需要的章节 已学习: website Overview Ana…

    2023年3月3日
  • Linux通过Systemd让程序开机启动并后台运行的一种方法记录

    最近在折腾这种GO语言开发的程序,单一文件,下载下来直接运行就能使用,真心简洁强大。但同时遇到一个问题,就是不能后台运行,不能开机启动。所以这里收藏了一下cloudreve官方的进…

    2024年8月16日
  • 一键查看浏览器中保存的明文密码

    有时候为了方便,总是把密码让浏览器把密码记住,这样时间久了可能就会忘记密码。今天就分享一个利用收藏JS代码的方法让密码明文化。 使用方法 在浏览器新建一个新的标签(收藏夹), 把下…

    2021年4月3日

发表回复

登录后才能评论