Skip to content

对象存储部署

MinIO 和 RustFS 是两种 S3 兼容对象存储,用于存储附件、备份等文件。

WARNING

MinIO 和 RustFS 默认使用相同端口(9000 API / 9001 Console),不可同时启动。

MinIO 部署

MinIO 是最流行的 S3 兼容对象存储,功能成熟、社区活跃。

启动

  1. 在 1Panel 中创建 Docker Compose 应用
  2. 将以下 Docker Compose 配置粘贴到 compose 配置中:
yaml
services:
  minio:
    image: minio/minio:latest
    container_name: ipam-minio
    restart: unless-stopped
    ports:
      - "${MINIO_API_PORT:-9000}:9000"
      - "${MINIO_CONSOLE_PORT:-9001}:9001"
    volumes:
      - ./minio-data:/data
    environment:
      - TZ=${TZ:-Asia/Shanghai}
      - MINIO_ROOT_USER=${MINIO_ROOT_USER:-minioadmin}
      - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD:-minioadmin123}
    command: server /data --console-address ":9001"
    healthcheck:
      test: ["CMD", "mc", "ready", "local"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s

  minio-init:
    image: minio/mc:latest
    container_name: ipam-minio-init
    restart: "no"
    depends_on:
      minio:
        condition: service_healthy
    environment:
      - TZ=${TZ:-Asia/Shanghai}
    entrypoint: >
      /bin/sh -c "
      mc alias set local http://minio:9000 ${MINIO_ROOT_USER:-minioadmin} ${MINIO_ROOT_PASSWORD:-minioadmin123} &&
      mc mb local/${STORAGE_BUCKET:-ipam} --ignore-existing &&
      mc anonymous set download local/${STORAGE_BUCKET:-ipam} &&
      echo 'MinIO 存储桶 ${STORAGE_BUCKET:-ipam} 创建完成'
      "
  1. 将环境变量粘贴到环境变量配置中
  2. 点击部署

默认配置

配置项默认值环境变量
API 端口9000MINIO_API_PORT
Console 端口9001MINIO_CONSOLE_PORT
用户名minioadminMINIO_ROOT_USER
密码minioadmin123MINIO_ROOT_PASSWORD
存储桶ipamSTORAGE_BUCKET

访问 Console: http://<宿主机IP>:9001

服务说明

  • minio:MinIO 主服务,提供 S3 API
  • minio-init:一次性初始化服务,自动创建配置的存储桶并设为公开下载,执行完毕后退出

RustFS 部署

RustFS 是基于 Rust 实现的高性能 S3 兼容对象存储,MinIO 的轻量替代方案。

启动

  1. 在 1Panel 中创建 Docker Compose 应用
  2. 将以下 Docker Compose 配置粘贴到 compose 配置中:
yaml
services:
  rustfs:
    image: rustfs/rustfs:latest
    container_name: ipam-rustfs
    restart: unless-stopped
    ports:
      - "${RUSTFS_API_PORT:-9000}:9000"
      - "${RUSTFS_CONSOLE_PORT:-9001}:9001"
    volumes:
      - ./rustfs-data:/data
    environment:
      - TZ=${TZ:-Asia/Shanghai}
      - RUSTFS_ACCESS_KEY=${RUSTFS_ACCESS_KEY:-rustfsadmin}
      - RUSTFS_SECRET_KEY=${RUSTFS_SECRET_KEY:-rustfsadmin123}
      - RUSTFS_VOLUMES=/data
      - RUSTFS_ADDRESS=:9000
      - RUSTFS_CONSOLE_ADDRESS=:9001
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--output-document=/dev/null", "http://127.0.0.1:9000/"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 15s

  rustfs-init:
    image: minio/mc:latest
    container_name: ipam-rustfs-init
    restart: "no"
    depends_on:
      rustfs:
        condition: service_healthy
    environment:
      - TZ=${TZ:-Asia/Shanghai}
    entrypoint: >
      /bin/sh -c "
      mc alias set local http://rustfs:9000 ${RUSTFS_ACCESS_KEY:-rustfsadmin} ${RUSTFS_SECRET_KEY:-rustfsadmin123} &&
      mc mb local/${STORAGE_BUCKET:-ipam} --ignore-existing &&
      mc anonymous set download local/${STORAGE_BUCKET:-ipam} &&
      echo 'RustFS 存储桶 ${STORAGE_BUCKET:-ipam} 创建完成'
      "
  1. 将环境变量粘贴到环境变量配置中
  2. 点击部署

默认配置

配置项默认值环境变量
API 端口9000RUSTFS_API_PORT
Console 端口9001RUSTFS_CONSOLE_PORT
用户名rustfsadminRUSTFS_ACCESS_KEY
密码rustfsadmin123RUSTFS_SECRET_KEY
存储桶ipamSTORAGE_BUCKET

访问 Console: http://<宿主机IP>:9001

服务说明

  • rustfs:RustFS 主服务,提供 S3 API 和 Web Console
  • rustfs-init:一次性初始化服务,自动创建配置的存储桶并设为公开下载,执行完毕后退出

环境变量

可通过 1Panel 环境变量自定义配置:

ini
# 通用
TZ=Asia/Shanghai
STORAGE_BUCKET=ipam

# MinIO
MINIO_ROOT_USER=myadmin
MINIO_ROOT_PASSWORD=MyStrongPassword123
MINIO_API_PORT=9000
MINIO_CONSOLE_PORT=9001

# RustFS
RUSTFS_ACCESS_KEY=myadmin
RUSTFS_SECRET_KEY=MyStrongPassword123
RUSTFS_API_PORT=9000
RUSTFS_CONSOLE_PORT=9001

对接 IPAM 后台

对象存储服务启动后,在 IPAM 后台 系统管理 → 存储配置 页面填写对应信息。

MinIO 对接

配置项容器间通信外部访问
端点minio:9000http://<宿主机IP>:9000
AccessKeyminioadmin(或自定义)同左
SecretKeyminioadmin123(或自定义)同左
存储桶ipam同左
使用 SSL关闭关闭

RustFS 对接

配置项容器间通信外部访问
端点rustfs:9000http://<宿主机IP>:9000
AccessKeyrustfsadmin(或自定义)同左
SecretKeyrustfsadmin123(或自定义)同左
存储桶ipam同左
使用 SSL关闭关闭

生产环境建议

  1. 修改默认密码:务必修改 MinIO/RustFS 的默认账号密码
  2. 使用独立磁盘:对象存储数据卷挂载到独立磁盘,避免与系统盘竞争 IO
  3. 启用 SSL:生产环境建议启用 HTTPS(需配置证书)
  4. 定期备份:定期备份对象存储数据
  5. 监控告警:监控对象存储服务的磁盘使用率和健康状态

基于 MIT 许可发布