Skip to content

快速参考

支持的标签及各自的 Dockerfile 链接

快速参考(续)

卡帕西托(这只是一种音译,具体翻译可能会根据上下文和实际情况有所不同)

Kapacitor 是一个用 Go 语言编写的开源数据处理引擎。它可以处理流数据和批数据。

卡帕西托官方文档

logo

使用此图像

使用默认配置

使用默认选项启动 Kapacitor 容器:

$ docker run -p 9092:9092 kapacitor

启动 Kapacitor 容器,使其与主机共享数据目录:

$ docker run -p 9092:9092 \
      -v $PWD:/var/lib/kapacitor \
      kapacitor

$PWD 修改为您想要存储与 Kapacitor 容器相关数据的目录。

您还可以通过使用命名卷让 Docker 控制卷挂载点。

$ docker run -p 9092:9092 \
      -v kapacitor:/var/lib/kapacitor \
      kapacitor

配置

Kapacitor 既可以通过配置文件进行配置,也可以使用环境变量进行配置。要挂载配置文件并将其与服务器一起使用,可以使用此命令:

生成默认配置文件:

$ docker run --rm kapacitor kapacitord config > kapacitor.conf

修改默认配置,该配置现在将在 $PWD 下可用。然后启动 Kapacitor 容器。

$ docker run -p 9092:9092 \
      -v $PWD/kapacitor.conf:/etc/kapacitor/kapacitor.conf:ro \
      kapacitor

$PWD 修改为您想要存储配置文件的目录。

对于环境变量,其格式为 KAPACITOR_$SECTION_$NAME 。所有破折号( - )都替换为下划线( _ )。如果变量不在某个部分中,则省略该部分。如果配置部分是一个数组,则使用数字来设置配置文件中的第 n 个值。

示例:

KAPACITOR_HOSTNAME=kapacitor
KAPACITOR_LOGGING_LEVEL=INFO
KAPACITOR_REPORTING_ENABLED=false
KAPACITOR_INFLUXDB_0_URLS_0=http://influxdb:8086

在此处了解有关配置 Kapacitor 的更多信息

以 root 身份运行

从 v1.7.4 版本开始,Kapacitor 默认不再以 root 用户身份运行。如果用户想要恢复此更改,可以将 KAPACITOR_AS_ROOT=true 设置为环境变量。

暴露的端口

  • 9092 TCP——HTTP API 端点

订阅

订阅允许 InfluxDB 将数据推送到 Kapacitor 以实现更快的警报,而不是要求 Kapacitor 从 InfluxDB 拉取数据。

这些示例假定您正在使用利用 Docker 内置服务发现功能的自定义配置文件。为了实现这一点,我们首先将创建一个新网络:

$ docker network create influxdb

接下来,我们将启动名为 influxdb 的 InfluxDB 容器:

$ docker run -d --name=influxdb \
      --net=influxdb \
      influxdb

使用与容器名称匹配的容器主机名启动 Kapacitor 容器,以便 Kapacitor 能够正确自动创建订阅,并将 KAPACITOR_INFLUXDB_0_URLS_0 值设置为指向 InfluxDB。

$ docker run -p 9092:9092 \
    --name=kapacitor \
    -h kapacitor \
    --net=influxdb \
    -e KAPACITOR_INFLUXDB_0_URLS_0=http://influxdb:8086 \
    kapacitor

您还可以启动 Kapacitor,使其与 InfluxDB 容器共享相同的网络接口。如果您这样做,Docker 将表现得好像这两个进程都在同一台机器上运行一样。

$ docker run -p 9092:9092 \
      --name=kapacitor \
      --net=container:influxdb \
      kapacitor

像这样运行时,InfluxDB 可以通过 localhost 进行通信。

命令行界面 / 外壳程序

启动容器:

$ docker run --name=kapacitor -d -p 9092:9092 kapacitor

运行另一个链接到 kapacitor 容器的容器以使用客户端。设置环境变量 KAPACITOR_URL ,以便客户端知道如何连接到 Kapacitor。在当前目录中挂载以访问 TICKscript 文件。

$ docker run --rm --net=container:kapacitor \
      -v $PWD:/root -w=/root -it \
      kapacitor bash -l

然后,在容器内部,您可以使用 kapacitor 命令与守护进程进行交互。

有关 Kapacitor 更详细的入门指南,请查看此内容。

图像变体

kapacitor 图像有多种类型,每种都针对特定的用例而设计。

kapacitor:<version>

这是事实上的映像。如果您不确定自己的需求是什么,您可能想要使用这个。它被设计为既可以用作一次性容器(挂载您的源代码并启动容器以启动您的应用程序),也可以作为构建其他映像的基础。

kapacitor:<version>-alpine

此图像基于流行的 Alpine Linux 项目,可在 alpine 官方镜像中获取。Alpine Linux 比大多数发行版基础镜像(约 5MB)小得多,因此总体上会生成更精简的镜像。

当您首要关注的是最终图像大小尽可能小的时候,此变体是有用的。需要注意的主要警告是,它确实使用 musl libc 而不是 glibc 及相关库,因此软件往往会根据其对 libc 要求/假设的深度而遇到问题。有关可能出现的问题以及使用基于 Alpine 的图像的一些利弊比较的更多讨论,请参阅此 Hacker News 评论线程。

为尽量减小镜像大小,在基于 Alpine 的镜像中通常不会包含其他相关工具(例如 gitbash )。以该镜像为基础,在您自己的 Dockerfile 中添加您需要的内容(如果您不熟悉如何安装软件包,请参阅 alpine 镜像说明中的示例)。

许可证

查看此映像中所包含软件的许可证信息。

与所有 Docker 镜像一样,这些镜像可能还包含其他可能受其他许可证约束的软件(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。

一些能够自动检测到的额外许可信息可能会在 repo-info 存储库的 kapacitor/ 目录中找到。

对于任何预构建图像的使用,图像用户有责任确保对此图像的任何使用都符合其中包含的所有软件的任何相关许可。