Docker Compose 部署单节点 MinIO 用于开发调试

1,653 阅读3分钟

Docker Compose 部署单节点 MinIO 用于开发调试

本文将介绍如何通过 Docker Compose 在本地快速部署单节点 MinIO 服务器,以便于开发和调试使用。MinIO 是一个高性能、S3 兼容的对象存储系统,特别适合在云原生应用中使用。

环境要求

  • Docker 19.03 或更高版本
  • Docker Compose 1.27.0 或更高版本

Docker Compose 配置详解

以下是我们使用的 docker-compose.yml 文件配置,它将启动一个 MinIO 容器,并映射所需的端口、设置环境变量以及存储路径。

docker-compose.yml

services:
  minio:
    image: minio/minio
    restart: always
    mem_limit: 1G
    ports:
      - "9000:9000"
      - "19001:9001"
    networks:
      - custom
    container_name: minio
    hostname: minio
    command: server /data --console-address ":9001"
    environment:
      - MINIO_ROOT_USER=admin
      - MINIO_ROOT_PASSWORD=_admin123
    volumes:
      - ./storage/data:/data
      - ./storage/config:/root/.minio

networks:
  custom:
    external: true
    driver: bridge

配置说明

  • 镜像与容器

    • 使用了官方的 minio/minio 镜像。
    • container_name 指定容器名称为 minio,便于管理和日志查看。
    • hostname 设置为 minio,方便容器内访问。
  • 端口映射

    • 9000:9000 映射 MinIO 的 S3 API 端口。
    • 19001:9001 映射 MinIO 控制台(Web UI)端口,可以通过浏览器访问 http://localhost:19001
  • 资源限制

    • mem_limit: 1G 限制容器最大使用 1GB 内存,防止开发环境中资源耗尽。
  • 网络

    • 使用名为 custom 的外部网络,并设置驱动为 bridge,确保容器与外部服务可以互联。
  • 环境变量

    • MINIO_ROOT_USERMINIO_ROOT_PASSWORD 设置 MinIO 的 root 用户名与密码。在启动后,你可以通过这些凭据登录 MinIO 控制台。
  • 挂载卷

    • ./storage/data:/data 挂载本地存储目录到容器内部的 /data,用于存储 MinIO 数据。
    • ./storage/config:/root/.minio 挂载配置目录,存储 MinIO 的配置文件,确保容器重启后配置和数据不会丢失。

命令行参数

command: server /data --console-address ":9001" 指定 MinIO 启动时的参数,/data 为数据存储路径,--console-address ":9001" 用于指定控制台的监听端口。

启动 MinIO

确保你已经安装了 Docker 和 Docker Compose,并在项目根目录下创建了 docker-compose.yml 文件。

  1. 运行以下命令启动 MinIO 服务:

    docker-compose up -d
    
  2. 启动完成后,可以通过以下命令查看容器的运行状态:

    docker-compose ps
    

    输出示例:

    Name                Command               State          Ports
    ----------------------------------------------------------------------
    minio      minio server /data --console- ...  Up       0.0.0.0:9000->9000/tcp, 0.0.0.0:19001->9001/tcp
    
  3. 访问 MinIO 控制台:

    打开浏览器,访问 http://localhost:19001,使用配置的用户名 admin 和密码 _admin123 登录。

常见问题

  • 无法访问控制台:请确保防火墙或网络配置允许端口 19001 的访问,且本地 Docker 服务正常运行。
  • 存储路径权限问题:请确保本地挂载的 ./storage/data./storage/config 目录存在,并具有正确的读写权限。

总结

通过 Docker Compose,我们可以轻松地在开发环境中快速部署 MinIO 单节点对象存储系统。本文提供的配置不仅可以满足日常开发需求,还能方便地调试和测试对象存储功能。在生产环境中,建议使用多节点的 MinIO 部署,以确保数据的高可用性和持久性。