如何更改influxdb存储位置

Roh*_*are 1 docker influxdb kubernetes

我已经在docker容器(Kubernetes)中安装了influxdb,并且已经在该容器上安装了持久卷。但是influxdb不会将数据写入该卷。任何人都可以告诉我步骤,以便influxdb写入特定容量的数据。谢谢

deb*_*vel 9

对于 InfluxDB 2.0

在 InfluxDB 2.0(或至少 2.0.3)中,数据目录已更改。~/.influxdbv2现在,东西默认存储在下面(图像中的~位置),这对我来说似乎不太像 docker 风格。/root/quay.io/influxdb/influxdb:v2.0.3

实际上,螺栓(各种键值配置)和引擎(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:
Run Code Online (Sandbox Code Playgroud)

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


小智 6

对于 InfluxDB 2.0.4:

Docker Hub上现在有一个官方镜像。但与quay.io/influxdb/influxdb:v2.0.4图像不同的是,数据存储在 中/root/.influxdbv2,您必须安装/var/lib/influxdb2为卷。


vis*_*nan 5

简短答案:

   $ docker run -p 8083:8083 -p 8086:8086 \
          -v $PWD:/var/lib/influxdb \
          influxdb
Run Code Online (Sandbox Code Playgroud)

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

长答案:

docker run -p 8083:8083 -p 8086:8086 influxdb
Run Code Online (Sandbox Code Playgroud)

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

$ docker run -p 8083:8083 -p 8086:8086 \
      -v $PWD:/var/lib/influxdb \
      influxdb
Run Code Online (Sandbox Code Playgroud)

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

例如,

 $ docker run -p 8083:8083 -p 8086:8086 \
              -v /your/home:/var/lib/influxdb \
              influxdb
Run Code Online (Sandbox Code Playgroud)

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