单机部署

docker run -p 9001:9000 --name minio \
  -v /mnt/data:/data \
  -v /mnt/config:/root/.minio \
  -e "MINIO_ACCESS_KEY=XXXXXXXXXXXXXXX" \
  -e "MINIO_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  minio/minio server /data

portainer 单机部署

version: '3.7'

x-common: &common
  # 指定服务使用的镜像
  image: minio/minio
  environment:
    # 设置 Access 和 Secret 密钥
    # - MINIO_ACCESS_KEY=XXXXXXXXXXXXXXX
    # - MINIO_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    # 新版 minio 配置 USER 和 PASSWORD
    - MINIO_ROOT_USER=XXXXXXXXXXXXXXX
    - MINIO_ROOT_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  # 自动重新启动
  restart: always

services:
  minio1:
    <<: *common
    # 指定主机名
    hostname: minio1
    # 指定服务运行的端口
    ports:
    - 9001:9000
    - 10001:10001
    # 指定容器中需要挂载的文件
    volumes:
      - /etc/localtime:/etc/localtime
      - /minio/server1/data:/data 
      - /minio/server1/config:/root/.minio 
    # 指定容器执行命令
    command: server /data --console-address ":10001"
    networks:
      lan:
        ipv4_address: 10.0.27.200

networks:
  lan:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 10.0.27.1/24
          gateway: 10.0.27.1

portainer 部署 minio 集群

version: '3.7'

x-common: &common
  # 指定服务使用的镜像
  image: minio/minio
  environment:
    # 设置 Access 和 Secret 密钥
    # - MINIO_ACCESS_KEY=XXXXXXXXXXXXXXX
    # - MINIO_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    # 新版 minio 配置 USER 和 PASSWORD
    - MINIO_ROOT_USER=XXXXXXXXXXXXXXX
    - MINIO_ROOT_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  # 自动重新启动
  restart: always
  # 指定容器执行命令
  command: server --console-address ":10001" http://minio{1...4}/data{1...2}
  healthcheck:
    test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
    interval: 30s
    timeout: 20s
    retries: 3

services:
  minio1:
    <<: *common
    # 指定主机名
    hostname: minio1
    # 指定服务运行的端口
    ports:
    - 9001:9000
    - 10001:10001
    # 指定容器中需要挂载的文件
    volumes:
      - /etc/localtime:/etc/localtime
      - /minio/server1/data1:/data1
      - /minio/server1/data2:/data2
      - /minio/server1/config:/root/.minio 
    networks:
      lan:
        ipv4_address: 10.0.27.200

  minio2:
    <<: *common
    # 指定主机名
    hostname: minio2
    # 指定服务运行的端口
    ports:
    - 9002:9000
    - 10002:10001
    # 指定容器中需要挂载的文件
    volumes:
      - /etc/localtime:/etc/localtime
      - /minio/server2/data1:/data1
      - /minio/server2/data2:/data2
      - /minio/server2/config:/root/.minio 
    networks:
      lan:
        ipv4_address: 10.0.27.201

  minio3:
    <<: *common
    # 指定主机名
    hostname: minio3
    # 指定服务运行的端口
    ports:
    - 9003:9000
    - 10003:10001
    # 指定容器中需要挂载的文件
    volumes:
      - /etc/localtime:/etc/localtime
      - /minio/server3/data1:/data1
      - /minio/server3/data2:/data2
      - /minio/server3/config:/root/.minio 
    networks:
      lan:
        ipv4_address: 10.0.27.202

  minio4:
    <<: *common
    # 指定主机名
    hostname: minio4
    # 指定服务运行的端口
    ports:
    - 9004:9000
    - 10004:10001
    # 指定容器中需要挂载的文件
    volumes:
      - /etc/localtime:/etc/localtime
      - /minio/server4/data1:/data1
      - /minio/server4/data2:/data2
      - /minio/server4/config:/root/.minio 
    networks:
      lan:
        ipv4_address: 10.0.27.203

networks:
  lan:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 10.0.27.1/24
          gateway: 10.0.27.1