我已经在docker容器(Kubernetes)中安装了Influxdb,并且我已经为该容器安装了一个持久卷。但是,Influxdb并没有将数据写入该卷。 任何人都可以告诉我步骤,以便Influxdb将特定的卷写入数据。 感谢
答案 0 :(得分:4)
简答:
$ 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中。
答案 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
挂载为卷。