惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Y
Y Combinator Blog
G
Google Developers Blog
Vercel News
Vercel News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
博客园 - 三生石上(FineUI控件)
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
H
Hackread – Cybersecurity News, Data Breaches, AI and More
aimingoo的专栏
aimingoo的专栏
T
Tailwind CSS Blog
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
Microsoft Security Blog
Microsoft Security Blog
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
云风的 BLOG
云风的 BLOG

博客园 - 无心々菜

高并发 - 配置2 高并发 - 配置 地图 - QGIS加载geojson,并导入Postgis数据库 VUE2 - Geoserver打印矢量PDF地图 - 在VUE2中的应用 地图 - Geoserver打印矢量PDF地图 Docker - 离线+无root环境安装 docker-rootless 运维 - 哪吒监控 Postgres 数据库在docker环境下分布式部署(arm64框架) Postgres 数据库在docker环境下分布式部署 Https - 配置方案 OpenObserver - 系统接口监控 VUE3 - Docker部署 + traefik反代 VUE2 - Docker部署 + traefik反代 高斯DB 数据库的安装 NETCORE - 使用 EFCORE 调用 高斯DB数据库 JMeter - 压力测试 NETCORE - IdentityServer4 多节点部署 NETCORE - IdentityServer4 相关文档 .NET框架 - NETCORE + API + EF(DBFirst) + PostgresSql Docker 部署 APISIX + etcd Docker部署martin 矢量切片服务器 Postgres 数据库的安装 NETCORE - 调用 RUSTFS Docker - 部署 RustFS 对像存储 Docker - 使用 Docker Secrets 敏感数据传输 Docker - 部署 Consul KV 统一管理所有项目的配置 Docker - 部署 HashiCorp Vault 开源密钥管理工具 kong 网关下集成 Consul服务注册与发现 Docker 部署 kong 网关 Docker - 部署Consul 新
InfluxDB2 在 docker 环境下部署,以及备份还原
无心々菜 · 2026-09-15 · via 博客园 - 无心々菜

InfluxDB 2 在 Docker 环境下的部署及备份还原

环境: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

1. 数据查询

进入 Explore → 选择日期范围 → 选择 Bucket 即可查看数据。

数据查询

2. 获取 Token

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

获取 Token

3. 修改密码(可选)

先进入容器,再执行:

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,再执行还原。

1. 查看 Bucket 列表

# 查看当前所有 bucket,确认 railmap 的 ID
influx bucket list \
  --host http://localhost:8086 \
  --token zP8GBQrY8LaCWvirW0K584xT3QcBdTtIyTutZOM7LW1viY_8RnCRT_0gy11YGb-RjH2lm0yZ6WlYYO7UVGjOGg== \
  --org crdc

2. 删除已有 Bucket

# 删除 railmap bucket
influx bucket delete \
  --host http://localhost:8086 \
  --token zP8GBQrY8LaCWvirW0K584xT3QcBdTtIyTutZOM7LW1viY_8RnCRT_0gy11YGb-RjH2lm0yZ6WlYYO7UVGjOGg== \
  --org crdc \
  --name railmap

3. 执行还原

# 再执行恢复
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 deleterestore
authorization not found Token 无效或权限不足 重新生成 All Access Token
connection refused 容器内 localhost 不可达 检查容器网络或改用容器名

六、安全建议

  • 文中示例使用的 Admin Token、密码均为演示值,请勿直接用于生产环境
  • 建议定期轮换 Admin Token 与用户密码。
  • 备份文件建议额外同步到异地存储,避免单点丢失。
  • 生产环境建议关闭 privileged,并按最小权限原则挂载卷。

七、常用 Flux 查询语句

以下语句可直接在 InfluxDB Web UI 的 Explore / Script Editor 中执行,Bucket 为 railmap,Measurement 为 sensor

1. 查询总条数

from(bucket: "railmap")
  |> range(start: 1970-01-01T00:00:00Z)
  |> filter(fn: (r) => r._measurement == "sensor")
  |> group()
  |> count()
  |> limit(n: 1)

查询总条数

2. 查询所有日期(去重、降序)

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)

查询所有日期

3. 查询第一个日期与最后一个日期

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])

查询首尾日期