基于单节点修改而成,不知道各个文件的作用可以参考单节点部署
注意:分布式部署只能network_mode为host模式
以下案例为3节点配置(每个节点的配置都是一样的)
如果需要新增多个节点,请在startMinio.sh
和docker-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}