Diskover 是一个文件系统分析工具,它使用 Elasticsearch 和 Redis 来存储文件元数据和统计信息,提供了一个可视化的界面来帮助用户发现文件的分布情况,识别大文件或者重复文件,进而可以更好地管理磁盘空间。它可以用于大数据环境下的磁盘空间管理、数据迁移规划、存储优化等。
应用场景:
- 数据中心存储管理
- 个人电脑文件组织
- 服务器空间分析
- 备份和存储优化规划
使用 Docker CLI 搭建 Diskover
步骤和参数解释:
- 运行 Diskover 容器
docker run -d \
--name=diskover \
-e PUID=1000 \ # 用户ID,容器内运行进程的用户ID
-e PGID=1000 \ # 组ID,容器内运行进程的用户组ID
-e TZ=Europe/London \ # 时区设置
-e REDIS_HOST=redis \ # Redis 服务的主机名
-e REDIS_PORT=6379 \ # Redis 服务的端口号
-e ES_HOST=elasticsearch \ # Elasticsearch 服务的主机名
-e ES_PORT=9200 \ # Elasticsearch 服务的端口号
-e ES_USER=elastic \ # Elasticsearch 用户名
-e ES_PASS=changeme \ # Elasticsearch 密码
-e INDEX_NAME=diskover- \ # 索引名的前缀
-e DISKOVER_OPTS= \ # Diskover 的其他可选参数
-e WORKER_OPTS= \ # Diskover worker 的其他可选参数
-e RUN_ON_START=true \ # 容器启动时运行 Diskover
-e USE_CRON=true \ # 使用计划任务来运行 Diskover
-p 80:80 \ # 将容器的 80 端口映射到宿主机的 80 端口
-p 9181:9181 \ # Flower 任务监控工具的端口映射
-p 9999:9999 \ # Diskover 的其他服务端口
-v /path/to/diskover/config:/config \ # 配置文件目录映射
-v /path/to/diskover/data:/data \ # 数据目录映射
--restart unless-stopped \ # 容器退出时重启策略
linuxserver/diskover # 使用的镜像名
使用 Docker Compose 搭建 Diskover
docker-compose.yml 文件内容和参数解释:
version: '2'
services:
diskover:
image: linuxserver/diskover
container_name: diskover
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- REDIS_HOST=redis
- REDIS_PORT=6379
- ES_HOST=elasticsearch
- ES_PORT=9200
- ES_USER=elastic
- ES_PASS=changeme
- RUN_ON_START=true
- USE_CRON=true
volumes:
- /path/to/diskover/config:/config
- /path/to/diskover/data:/data
ports:
- 80:80
- 9181:9181
- 9999:9999
mem_limit: 4096m # 容器可使用的最大内存限制
restart: unless-stopped # 容器退出时重启策略
depends_on: # 依赖的服务
- elasticsearch
- redis
elasticsearch:
container_name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:5.6.9
volumes:
- ${DOCKER_HOME}/elasticsearch/data:/usr/share/elasticsearch/data
environment:
- bootstrap.memory_lock=true # 防止内存交换
- "ES_JAVA_OPTS=-Xms2048m -Xmx2048m" # JVM启动参数,设置 Elasticsearch 的最小和最大内存使用量
ulimits:
memlock:
soft: -1
hard: -1 # 内存锁定选项,避免内存交换
redis:
container_name: redis
image: redis:alpine
volumes:
- ${HOME}/docker/redis:/data # Redis 数据持久化存储
部署流程:
- 准备
docker-compose.yml
文件,并替换其中的路径和参数为实际的值。 - 在包含
docker-compose.yml
文件的目录下运行docker-compose up -d
命令。 - Docker Compose 会根据配置文件中定义的内容启动 Diskover 以及其依赖的 Elasticsearch 和 Redis 服务。