











环境:Docker | 版本:InfluxDB v2(influxdb:2.1.1)
使用 docker-compose 部署:
influxdb:
image: influxdb:2.1.1
container_name: influxdb
restart: always
ports:
- "8086:8086"
environment:
- DOCKER_INFLUXDB_INIT_USERNAME=admin
- DOCKER_INFLUXDB_INIT_PASSWORD=123456
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=lLkuOfp21S_mzUo9N83rDI2VdWv-nxWMSL2JhBxhRTazlXrQi3TMycY3sKJjL6gt2yBctPHABbS6TWqJrcOciw==
volumes:
- D:\DockerMapping\data_influxdb2\data:/var/lib/influxdb2
- D:\DockerMapping\data_influxdb2\back:/back
privileged: true
说明
data目录用于持久化 InfluxDB 数据。back目录用于挂载备份文件(容器内路径/back)。privileged: true一般非必需,除非有特殊挂载 / 权限需求。
| 项目 | 值 |
|---|---|
| Web UI | http://localhost:8086 |
| Organization | crdc |
| 初始密码 | 123456 |
| Bucket | railmap |
进入 Explore → 选择日期范围 → 选择 Bucket 即可查看数据。

Web UI 路径:Data → API Tokens → Generate API Token → All Access API Token

先进入容器,再执行:
influx user password --name admin \
--token "74Fp6ixViPXsrgJGVtD2XcO6611Of0LyhQLogV_wSO1Z2puoDMVKY2bQBcS3vHRFze3_gNHkW7xunXGLtTKdZg=="
进入容器:
docker exec -it influxdb /bin/bash
执行备份(文件名按时间戳自动生成):
influx backup /back/out/influxdb_backup_$(date '+%Y-%m-%d_%H-%M') \
--host http://localhost:8086 \
--org crdc \
--token OcG-XH9iuhxHpMuNZZkrFzlIrfHb5Y86wjpfbVUJqn5WOpGjyry9fo7BHSpyogBP3tIvSsiZXcMk9KDktwHZKA==
重要提示
InfluxDB 2.x 的
influx restore不支持覆盖已存在的 Bucket,因此必须先删除目标 Bucket,再执行还原。
# 查看当前所有 bucket,确认 railmap 的 ID
influx bucket list \
--host http://localhost:8086 \
--token zP8GBQrY8LaCWvirW0K584xT3QcBdTtIyTutZOM7LW1viY_8RnCRT_0gy11YGb-RjH2lm0yZ6WlYYO7UVGjOGg== \
--org crdc
# 删除 railmap bucket
influx bucket delete \
--host http://localhost:8086 \
--token zP8GBQrY8LaCWvirW0K584xT3QcBdTtIyTutZOM7LW1viY_8RnCRT_0gy11YGb-RjH2lm0yZ6WlYYO7UVGjOGg== \
--org crdc \
--name railmap
# 再执行恢复
influx restore \
--host http://localhost:8086 \
--token zP8GBQrY8LaCWvirW0K584xT3QcBdTtIyTutZOM7LW1viY_8RnCRT_0gy11YGb-RjH2lm0yZ6WlYYO7UVGjOGg== \
--org crdc \
--bucket railmap \
/back/influxdb-back-20260601
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
422 Unprocessable Entity: bucket with name railmap already exists |
目标 Bucket 已存在,restore 不支持覆盖 |
先 bucket delete 再 restore |
authorization not found |
Token 无效或权限不足 | 重新生成 All Access Token |
connection refused |
容器内 localhost 不可达 |
检查容器网络或改用容器名 |
- 文中示例使用的 Admin Token、密码均为演示值,请勿直接用于生产环境。
- 建议定期轮换 Admin Token 与用户密码。
- 备份文件建议额外同步到异地存储,避免单点丢失。
- 生产环境建议关闭
privileged,并按最小权限原则挂载卷。
以下语句可直接在 InfluxDB Web UI 的 Explore / Script Editor 中执行,Bucket 为 railmap,Measurement 为 sensor。
from(bucket: "railmap")
|> range(start: 1970-01-01T00:00:00Z)
|> filter(fn: (r) => r._measurement == "sensor")
|> group()
|> count()
|> limit(n: 1)

from(bucket: "railmap")
|> range(start: 1970-01-01T00:00:00Z)
|> filter(fn: (r) => r._measurement == "sensor")
|> keep(columns: ["_time"])
|> truncateTimeColumn(unit: 1d)
|> distinct(column: "_time")
|> sort(columns: ["_time"], desc: true)

first = from(bucket: "railmap")
|> range(start: 1970-01-01T00:00:00Z)
|> filter(fn: (r) => r._measurement == "sensor")
|> keep(columns: ["_time"])
|> sort(columns: ["_time"], desc: false)
|> limit(n: 1)
last = from(bucket: "railmap")
|> range(start: 1970-01-01T00:00:00Z)
|> filter(fn: (r) => r._measurement == "sensor")
|> keep(columns: ["_time"])
|> sort(columns: ["_time"], desc: true)
|> limit(n: 1)
union(tables: [first, last])

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。