菜单
本页目录

基于单节点修改而成,不知道各个文件的作用可以参考单节点部署

注意:分布式部署只能network_mode为host模式

以下案例为3节点配置(每个节点的配置都是一样的) 如果需要新增多个节点,请在startMinio.shdocker-compose.yml修改配置

节点1->minio1(20.220.26.3)

docker-compose.yml

version: "3"
services:
  minio:
    image: minio/minio:RELEASE.2024-04-06T05-26-02Z-cpuv1
    container_name: minio
    restart: always
    expose:
      - "9000"
      - "9001"
    volumes:
      - "./workspace/minio/data1:/data1"
      - "./workspace/minio/data2:/data2"
      - "./workspace/minio/scripts:/scripts/minio"
    entrypoint: /scripts/minio/startMinio.sh
    environment:
      - MINIO_ROOT_USER=admin
      - MINIO_ROOT_PASSWORD=junpzx@2023
    healthcheck:
      test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ]
      interval: 30s
      timeout: 20s
      retries: 3
    extra_hosts:
      - minio1:20.220.26.3
      - minio2:20.220.26.4
      - minio3:20.220.26.5
    network_mode: host

initAccessKey.sh

#!/bin/bash
sleep 60
mc alias set minio http://127.0.0.1:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD
mc admin user svcacct add --access-key "B6ucsfOJ9psBJBbM0akH" --secret-key "yWn0vVMX6IppcObeDpuLFwyHey8wsslqBiwO6DZK" minio $MINIO_ROOT_USER

startMinio.sh

#!/bin/bash
sh /scripts/minio/initAccessKey.sh &
minio server --console-address ':9001' --address ':9000' http://minio{1...3}/data{1...2}

节点2->minio2(20.220.26.4)

docker-compose.yml

version: "3"
services:
  minio:
    image: minio/minio:RELEASE.2024-04-06T05-26-02Z-cpuv1
    container_name: minio
    restart: always
    expose:
      - "9000"
      - "9001"
    volumes:
      - "./workspace/minio/data1:/data1"
      - "./workspace/minio/data2:/data2"
      - "./workspace/minio/scripts:/scripts/minio"
    entrypoint: /scripts/minio/startMinio.sh
    environment:
      - MINIO_ROOT_USER=admin
      - MINIO_ROOT_PASSWORD=junpzx@2023
    healthcheck:
      test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ]
      interval: 30s
      timeout: 20s
      retries: 3
    extra_hosts:
      - minio1:20.220.26.3
      - minio2:20.220.26.4
      - minio3:20.220.26.5
    network_mode: host

initAccessKey.sh

#!/bin/bash
sleep 60
mc alias set minio http://127.0.0.1:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD
mc admin user svcacct add --access-key "B6ucsfOJ9psBJBbM0akH" --secret-key "yWn0vVMX6IppcObeDpuLFwyHey8wsslqBiwO6DZK" minio $MINIO_ROOT_USER

startMinio.sh

#!/bin/bash
sh /scripts/minio/initAccessKey.sh &
minio server --console-address ':9001' --address ':9000' http://minio{1...3}/data{1...2}

节点3->minio3(20.220.26.5)

docker-compose.yml

version: "3"
services:
  minio:
    image: minio/minio:RELEASE.2024-04-06T05-26-02Z-cpuv1
    container_name: minio
    restart: always
    expose:
      - "9000"
      - "9001"
    volumes:
      - "./workspace/minio/data1:/data1"
      - "./workspace/minio/data2:/data2"
      - "./workspace/minio/scripts:/scripts/minio"
    entrypoint: /scripts/minio/startMinio.sh
    environment:
      - MINIO_ROOT_USER=admin
      - MINIO_ROOT_PASSWORD=junpzx@2023
    healthcheck:
      test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ]
      interval: 30s
      timeout: 20s
      retries: 3
    extra_hosts:
      - minio1:20.220.26.3
      - minio2:20.220.26.4
      - minio3:20.220.26.5
    network_mode: host

initAccessKey.sh

#!/bin/bash
sleep 60
mc alias set minio http://127.0.0.1:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD
mc admin user svcacct add --access-key "B6ucsfOJ9psBJBbM0akH" --secret-key "yWn0vVMX6IppcObeDpuLFwyHey8wsslqBiwO6DZK" minio $MINIO_ROOT_USER

startMinio.sh

#!/bin/bash
sh /scripts/minio/initAccessKey.sh &
minio server --console-address ':9001' --address ':9000' http://minio{1...3}/data{1...2}