使用docker-compose搭建minio集群

438 阅读2分钟

拉取镜像

docker pull minio/minio

自定义网络

  • 让每个容器都有一个独立可在局域网内被访问的IP
docker network create -d macvlan --subnet=192.168.200.0/24 --ip-range=192.168.200.0/24 --gateway=192.168.200.1 -o parent=ens33 macvlan200

image.png

  • parent、gateway、ip-range、subnet要根据自己虚拟器情况而定

编写docker-compose文件

version: '1'
services:
  minio-240:
    image: minio/minio
    container_name: minio-240
    restart: always
    privileged: true
    networks:
      macvlan200:
        ipv4_address: 192.168.200.240
    volumes:
      - /home/minio/data/node240/export1:/export1
      - /home/minio/data/node240/export2:/export2
    environment:
      - MINIO_ROOT_USER=admin
      - MINIO_ROOT_PASSWORD=admin123456
    command: server http://192.168.200.24{0...2}/export{1...2}  # http://192.168.200.24{0...2}/export{1...2}: 意思是240, 241, 242的export1和export2共同构建minio集群

  minio-241:
    image: minio/minio
    container_name: minio-241
    restart: always
    privileged: true
    networks:
      macvlan200:
        ipv4_address: 192.168.200.241
    volumes:
      - /home/minio/data/node241/export1:/export1
      - /home/minio/data/node241/export2:/export2
    environment:
      - MINIO_ROOT_USER=admin
      - MINIO_ROOT_PASSWORD=admin123456
    command: server http://192.168.200.24{0...2}/export{1...2} # http://192.168.200.24{0...2}/export{1...2}: 意思是240, 241, 242的export1和export2共同构建minio集群

  minio-242:
    image: minio/minio
    container_name: minio-242
    restart: always
    privileged: true
    networks:
      macvlan200:
        ipv4_address: 192.168.200.242
    volumes:
      - /home/minio/data/node242/export1:/export1
      - /home/minio/data/node242/export2:/export2
    environment:
      - MINIO_ROOT_USER=admin
      - MINIO_ROOT_PASSWORD=admin123456
    command: server http://192.168.200.24{0...2}/export{1...2} # http://192.168.200.24{0...2}/export{1...2}: 意思是240, 241, 242的export1和export2共同构建minio集群

networks:
  macvlan200:
    external: true
    ipam:
      driver: default
      config:
        - subnet: 192.168.200.0/24

执行 docker-compose 指令

  • 后台方式启动所有容器: docker-compose -f docker-compose.yml up -d
    • 如果yml文件命名为doocker-compose.yml可以不用加-f参数, 下面的指令我就不加了
  • 停止所有容器: docker-compose stop
  • 停止并删除所有容器: docker-compose rm -s