文档文档

使用 Docker Compose 安装 InfluxDB

使用 Docker Compose 安装和设置 InfluxDB v2,这个时序平台专门用于收集、存储、处理和可视化指标和事件。

当您使用 Docker Compose 创建 InfluxDB 容器时,您可以使用 Compose secrets 来控制对敏感凭据(如用户名、密码和令牌)的访问,并防止它们在 docker inspect 输出中泄露。

influxdb Docker 镜像提供了以下环境变量,可与 Compose secrets 一起使用

  • DOCKER_INFLUXDB_INIT_USERNAME_FILE:容器中包含您的初始用户用户名的文件路径。
  • DOCKER_INFLUXDB_INIT_PASSWORD_FILE:容器中包含您的初始用户密码的文件路径。
  • DOCKER_INFLUXDB_INIT_ADMIN_TOKEN_FILE:容器中包含用于您的初始操作员令牌的令牌的文件路径。如果您未指定初始令牌,InfluxDB 会为您生成一个。

使用 Docker Compose secrets 进行设置

按照步骤使用 Docker Compose 和 secrets 设置并运行 InfluxDB

  1. 如果您尚未安装,请为您的系统安装 Docker Desktop

  2. 将以下 compose.yaml 复制到您的项目目录中。

    # compose.yaml
    services:
      influxdb2:
        image: influxdb:2
        ports:
          - 8086:8086
        environment:
          DOCKER_INFLUXDB_INIT_MODE: setup
          DOCKER_INFLUXDB_INIT_USERNAME_FILE: /run/secrets/influxdb2-admin-username
          DOCKER_INFLUXDB_INIT_PASSWORD_FILE: /run/secrets/influxdb2-admin-password
          DOCKER_INFLUXDB_INIT_ADMIN_TOKEN_FILE: /run/secrets/influxdb2-admin-token
          DOCKER_INFLUXDB_INIT_ORG: docs
          DOCKER_INFLUXDB_INIT_BUCKET: home
        secrets:
          - influxdb2-admin-username
          - influxdb2-admin-password
          - influxdb2-admin-token
        volumes:
          - type: volume
            source: influxdb2-data
            target: /var/lib/influxdb2
          - type: volume
            source: influxdb2-config
            target: /etc/influxdb2
    secrets:
      influxdb2-admin-username:
        file: ~/.env.influxdb2-admin-username
      influxdb2-admin-password:
        file: ~/.env.influxdb2-admin-password
      influxdb2-admin-token:
        file: ~/.env.influxdb2-admin-token
    volumes:
      influxdb2-data:
      influxdb2-config:
    
  3. 对于 compose.yaml 中的每个 secret,创建一个包含 secret 值的文件 - 例如

    • ~/.env.influxdb2-admin-username:

      admin
      
    • ~/.env.influxdb2-admin-password:

      MyInitialAdminPassword
      
    • ~/.env.influxdb2-admin-token:

      MyInitialAdminToken0==
      
  4. 要设置并运行 InfluxDB,请在您的终端中输入以下命令

    docker compose up influxdb2
    

在运行时,influxdb 镜像

  1. secrets 文件从您的主机文件系统挂载到容器中的 /run/secrets/<SECRET_NAME>

  2. 将环境变量分配给指定的文件 - 例如

    environment:
      DOCKER_INFLUXDB_INIT_USERNAME_FILE: /run/secrets/influxdb2-admin-username
      DOCKER_INFLUXDB_INIT_PASSWORD_FILE: /run/secrets/influxdb2-admin-password
      DOCKER_INFLUXDB_INIT_ADMIN_TOKEN_FILE: /run/secrets/influxdb2-admin-token
    
  3. 从挂载的文件中检索 secrets 并运行设置。

  4. 启动 InfluxDB。

  5. 运行容器 /docker-entrypoint-initdb.d/ 路径内挂载的任何自定义初始化脚本。

如果成功,InfluxDB 将初始化用户、密码、组织、存储桶和操作员令牌,然后记录到 stdout。您可以在 https://127.0.0.1:8086 查看 InfluxDB UI。

尽管 Docker 可以防止意外泄露 secrets(例如,在 docker inspect 输出中),但有权访问正在运行的容器文件系统的用户可以查看 secrets。

在容器中运行 InfluxDB CLI 命令

在使用 influxdb Docker Hub 镜像启动容器后,您可以使用容器内的 docker exec 以及 influxinfluxd CLI

管理挂载卷中的文件

要在本地文件系统和卷之间复制文件(例如 InfluxDB 服务器 config.yml 文件),请使用 docker container cp 命令

有关更多 InfluxDB 和 Docker 配置选项,请参阅 influxdb Docker Hub 镜像 文档。


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像当前一样使用它,而无需对代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开发布 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是一个用于时序和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何入门的更多信息,请查看