文档文档

使用 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:容器中包含用于您的初始Operator 令牌的令牌的文件路径。如果您未指定初始令牌,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 并运行 setup。

  4. 启动 InfluxDB。

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

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

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

在容器中运行 InfluxDB CLI 命令

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

管理挂载卷中的文件

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

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


此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最近数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看