# Docker部署MinIO服务

> wandoubaba / 2024-10-29

## 介绍

下面是[MinIO官网](https://www.minio.org.cn/)的一段介绍：

```
MinIO 是一种高性能、S3 兼容的对象存储。
它专为大规模 AI/ML、数据湖和数据库工作负载而构建，并且它是由软件定义的存储。
不需要购买任何专有硬件，就可以在云上和普通硬件上拥有分布式对象存储。
MinIO拥有开源 GNU AGPL v3 和商业企业许可证的双重许可。
```

简单来说，MinIO 是一个被广泛用使用的开源对象存储服务组件，可以用它轻松搭建私有的对象存储服务。

## 操作过程

本文只是简单启动一个单节点单硬盘服务，更复杂的场景可以参考[MinIO对象存储Container官方文档](https://www.minio.org.cn/docs/minio/container/index.html)。

### 创建存储目录

比如创建`/app/minio/`目录，准备用其中的`/app/minio/data`保存所有存储桶（bucket）和其中的对象。

```sh
mkdir /app/minio/data -p
```

### 创建docker-compose.yml文件

创建文件`/app/minio/docker-compose.yml`，内容如下（注意自己改管理员账号密码）：

```yml
services:
  minio:
    image: quay.io/minio/minio:latest
    hostname: "minio"
    restart: always
    environment:
      MINIO_ROOT_USER: ROOTNAME
      MINIO_ROOT_PASSWORD: CHANGEME123
      MINIO_VOLUMES: /data
    ports:
      - 9001:9001
      - 9000:9000
    volumes:
      - ./data:/data
    command: server --console-address ':9001'
```

### 启动容器

在`/app/minio`目录下执行下面的命令：

```sh
docker compose up -d
```

### 验证安装

服务器防火墙要放行 9000 和 9001端口，假设我的服务器的IP是 192.168.0.8 ，那么在web浏览器上打开 `http://192.168.0.8:9001` ，应该可以看到登录页，填入`MINIO_ROOT_USER`和`MINIO_ROOT_PASSWORD`对应的值，应该可以登录minio的web控制台。
