如何更改Influxdb存储位置

时间:2017-03-15 01:19:05

标签: docker kubernetes influxdb

我已经在docker容器(Kubernetes)中安装了Influxdb,并且我已经为该容器安装了一个持久卷。但是,Influxdb并没有将数据写入该卷。 任何人都可以告诉我步骤,以便Influxdb将特定的卷写入数据。 感谢

4 个答案:

答案 0 :(得分:4)

简答:

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

使用外部卷的路径修改$ PWD。

答案很长:

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中。

答案 1 :(得分:3)

对于 InfluxDB 2.0

在 InfluxDB 2.0(或至少 2.0.3)中,数据目录已更改。事物现在默认存储在 ~/.influxdbv2 下(其中 ~/root/ 映像中是 quay.io/influxdb/influxdb:v2.0.3),这对我来说似乎不是很像 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。

答案 2 :(得分:2)

如果您从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

答案 3 :(得分:0)

对于 InfluxDB 2.0.4:

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