【问题标题】:How to change influxdb storage location如何更改 influxdb 存储位置
【发布时间】:2017-03-15 01:19:04
【问题描述】:

我已在 docker 容器 (Kubernetes) 中安装了 influxdb,并且已将持久卷安装到该容器。但是 influxdb 没有将数据写入该卷。 谁能告诉我步骤,以便 influxdb 将数据写入特定卷。 谢谢

【问题讨论】:

    标签: docker kubernetes influxdb


    【解决方案1】:

    简答:

       $ docker run -p 8083:8083 -p 8086:8086 \
              -v $PWD:/var/lib/influxdb \
              influxdb
    

    用外部卷的路径修改 $PWD。​​p>

    长答案:

    docker run -p 8083:8083 -p 8086:8086 influxdb
    

    默认情况下,这会将数据存储在 /var/lib/influxdb 中。所有 InfluxDB 数据都保存在那里。要使其成为持久卷(推荐):

    $ docker run -p 8083:8083 -p 8086:8086 \
          -v $PWD:/var/lib/influxdb \
          influxdb
    

    将 $PWD 修改为您要存储与 InfluxDB 容器关联的数据的目录。

    例如,

     $ docker run -p 8083:8083 -p 8086:8086 \
                  -v /your/home:/var/lib/influxdb \
                  influxdb
    

    这会将流入数据存储在主机上的 /your/home 中。

    【讨论】:

    • 感谢您的回复。如果我想存储到 /your/home 并且我想使用我自己的配置文件怎么办。命令应该是什么?
    • 我还有更多问题。我使用卷挂载启动了 Linux Docker 容器。当我访问容器并浏览到该文件夹​​时,/var/lib/influxdb 下只有一个名为 _internal 的数据库。我的 python 脚本向我展示了另一个名为 test_database 的数据库。这个数据库在哪里?
    【解决方案2】:

    对于 InfluxDB 2.0

    在 InfluxDB 2.0(或至少 2.0.3)中,数据目录已更改。现在默认情况下,东西存储在~/.influxdbv2 下(其中~quay.io/influxdb/influxdb:v2.0.3 图像中是/root/),这对我来说似乎不是很docker-ish。

    其实bolt(各种键值配置)和engine(TSM数据库)有2个数据存储。如果您愿意,可以通过 --engine-path=/data/engine --bolt-path=/data/bolt 参数将它们更改为 influxd

    因此,下面的docker-compose.yml 应该将 InfluxDB2 数据存储到一个卷中。

    version: '3.3'
    services:
      influxdb:
        image: 'quay.io/influxdb/influxdb:v2.0.3'
        restart: unless-stopped
        ports:
          - '8086:8086'
        volumes:
          - data:/root/.influxdbv2
    volumes:
      data:
    

    现在,Docker Hub没有官方 _/influxdb:2.0(另见 influxdb#16649)。我希望这个图像(一旦发布)有一些更好的默认值(quay.io/influxdb/influxdb:v2.0.3 甚至不创建匿名卷;因此一旦容器被移除,任何数据都会丢失)。因此,在此处尝试这些操作之前,请检查 Docker Hub 是否有 InfluxDB 2.0 映像。

    【讨论】:

      【解决方案3】:

      如果你从docker库中拉取官方influxdb镜像,数据文件的默认路径是:

      /var/lib/influxdb
      

      要验证,请运行独立实例:

      docker run -p 8083:8083 -p 8086:8086 \
            -v $PWD:/var/lib/influxdb \
            influxdb
      

      查看默认配置:

      docker run --rm influxdb influxd config > influxdb.conf
      

      然后使用vim influxdb.conf

      使用自定义配置运行 influxdb:

      docker run -p 8086:8086 \
            -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro \
            influxdb -config /etc/influxdb/influxdb.conf
      

      【讨论】:

        【解决方案4】:

        对于 InfluxDB 2.0.4:

        Docker Hub 上现在有一张官方图片。但与quay.io/influxdb/influxdb:v2.0.4 映像不同,其中数据存储在/root/.influxdbv2 中,您必须将/var/lib/influxdb2 挂载为一个卷。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-17
          • 2020-12-27
          • 2013-08-25
          • 2015-01-14
          • 2012-06-08
          • 2015-05-25
          • 2012-07-21
          • 1970-01-01
          相关资源
          最近更新 更多