已安装好 docker-compose 并配置好国内加速镜像的参考 docker-compose 方案即可,这个最简单快速,否则只能看 linux 搭建 方式

docker-compose

单机编排

version: '3'
services:
  minio:
    image: minio/minio
    hostname: "minio"
    ports:
      - 9000:9000 # api 端口
      - 9001:9001 # 控制台端口
    environment:
      MINIO_ACCESS_KEY: admin    #管理后台用户名
      MINIO_SECRET_KEY: admin123 #管理后台密码,最小8个字符
    volumes:
      - ./data:/data               #映射当前目录下的data目录至容器内/data目录
      - ./config:/root/.minio/     #映射配置目录
    command: server --console-address ':9001' /data  #指定容器中的目录 /data
    privileged: true
    restart: always

集群编排

version: '3'

# starts 4 docker containers running minio server instances.
# using nginx reverse proxy, load balancing, you can access
# it through port 9000.
services:
  minio1:
    image: minio/minio
    hostname: minio1
    volumes:
      - data1-1:/data1
      - data1-2:/data2
    expose:
      - "9000"
      - "9001"
    environment:
      MINIO_ROOT_USER: minio
      MINIO_ROOT_PASSWORD: minio123
    command: server --console-address ":9001" http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio2:
    image: minio/minio
    hostname: minio2
    volumes:
      - data2-1:/data1
      - data2-2:/data2
    expose:
      - "9000"
      - "9001"
    environment:
      MINIO_ROOT_USER: minio
      MINIO_ROOT_PASSWORD: minio123
    command: server --console-address ":9001" http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio3:
    image: minio/minio
    hostname: minio3
    volumes:
      - data3-1:/data1
      - data3-2:/data2
    expose:
      - "9000"
      - "9001"
    environment:
      MINIO_ROOT_USER: minio
      MINIO_ROOT_PASSWORD: minio123
    command: server --console-address ":9001" http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio4:
    image: minio/minio
    hostname: minio4
    volumes:
      - data4-1:/data1
      - data4-2:/data2
    expose:
      - "9000"
      - "9001"
    environment:
      MINIO_ROOT_USER: minio
      MINIO_ROOT_PASSWORD: minio123
    command: server --console-address ":9001" http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  nginx:
    image: nginx:1.19.2-alpine
    hostname: nginx
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    ports:
      - "9000:9000"
      - "9001:9001"
    depends_on:
      - minio1
      - minio2
      - minio3
      - minio4

## By default this config uses default local driver,
## For custom volumes replace with volume driver configuration.
volumes:
  data1-1:
  data1-2:
  data2-1:
  data2-2:
  data3-1:
  data3-2:
  data4-1:
  data4-2:

启动和访问

docker-compose up -d

linux 搭建

下载服务端

下载地址 https://dl.min.io/

点击server->minio->release,在页面中选择对于平台即可下载

# 下载服务端
wget https://dl.min.io/server/minio/release/linux-amd64/minio
# 赋予可执行权限
chmod +x minio
# 启动服务
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /data/minio --console-address ":9001" --address ':9000'

下载客户端

下载地址:https://dl.min.io/client/mc/release/ 选择自己适配的版本,下载完成后,命令行

# 下载
wget https://dl.min.io/client/mc/release/linux-amd64/mc
# 赋予可执行权限
chmod +x mc
# 修改密码
mc alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
  1. 配置服务端

    mc config host add minio http://IP:9000 minioadmin minioadmin
    
  2. 设置分享链接永久生效

    mc policy set public minio/test
    

    这样就行了,其原理是,Minio只要将Bucket设置为公共只读,即可无期限访问了

  3. 客户端其他命令:
    查看可以设置的KEY

    mc admin config set minio/
    

    展示对应KEY的可选参数

    mc admin config set play/ site
    

Bucket里面资源分享地址为容器为0.0.0.0或容器内地址:
部署命令如下:

docker run --name minio  -d -v /data/minio:/data/minio -p 9000:9000 -p 9001:9001 minio/minio server --address '0.0.0.0:9000' --console-address '0.0.0.0:9001' /data/minio

通过指定了--address之后,分享链接里的地址变成了: address为前缀

sdk 接入

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.3.3</version>
</dependency>

进入控制台

访问 http://ip:9000 即可进入登录页面
账号密码为编排文件内指定的 MINIO_ROOT_USER 与 MINIO_ROOT_PASSWORD

Q.E.D.


寻门而入,破门而出