Minio简介

  • Minio是一款高性能的分布式对象存储服务器,专为大规模私有云基础架构而设计
  • Minio是一个分布式对象存储服务器,Amazon S3兼容,用Go编写,在Apache License Version 2.0下开源
  • Minio为加密数据提供机密性,完整性和真实性保证,而性能开销可忽略不计。使用AES-256-GCM,ChaCha20-Poly1305和AES-CBC支持服务器端和客户端加密。加密对象使用AEAD服务器端加密进行防篡改。
  • 详细简介请 点击这里

以下命令都需要管理员权限 sudo

搜索 gitlab Docker镜像

docker search minio

//输出结果部分截图
NAME                        DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
minio/minio                 Minio is an Amazon S3 compatible object stor…   175                                     [OK]
minio/mc                    Minio Client (mc) provides a modern alternat…   8                                       [OK]
webhippie/minio             Docker images for minio                         3                                       [OK]
pixelchrome/minio-arm       This Dockerfile installs Minio on your ARM-P…   3                                       
bbinet/salt-minion                                                          2                                       [OK]
zenithar/minio-server       Minio.io Server in Alpine Linux docker          1                                       [OK]
opennms/minion              Application container runs Minion by OpenNMS…   1                                       [OK]
jarfil/salt-minion          Salt minion only                                1                                       [OK]
icereed/openshift-minio     Minio packaged and compatible to Openshift a…   1                                       [OK]
webcenter/alpine-minio      The Minio Cloud Storage that work on Rancher.   1                                       [OK]

拉取 gitlab Docker镜像

docker pull minio/minio

Docker启动单个Minio

  • 启动一个Minio。在本机测试使用的话,将-h替换为127.0.0.1。如果需要让外部系统也能访问的话使用外网IP地址。
  • 分布式Minio使用的磁盘里必须是干净的,里面没有数据
  • 分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接
  • MINIO_ACCESS_KEY=L0DELXP9EP8JRAZLQJ90 使用自定义方便分布式
  • MINIO_SECRET_KEY=6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2 使用自定义方便分布式
  • 分布式Minio里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致
 //挂载一个盘 
docker run -d -p 9000:9000 -h 192.168.2.28 --name minio -e MINIO_ACCESS_KEY=L0DELXP9EP8JRAZLQJ90 -e MINIO_SECRET_KEY=6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2  -v /mnt/data:/data/minio -v /mnt/config:/root/.minio  minio/minio server /data/minio     
//挂载多个盘必须大于或等于4的偶数个盘
docker run -d -p 9000:9000 -h 192.168.2.28 --name minio -e MINIO_ACCESS_KEY=L0DELXP9EP8JRAZLQJ90 -e MINIO_SECRET_KEY=6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2  -v /mnt/data1:/data/minio_a -v /mnt/data2:/data/minio_b -v /mnt/data3:/data/minio_c -v /mnt/data4:/data/minio_d -v /mnt/config:/root/.minio  minio/minio server /data/minio_a /data/minio_b /data/minio_c /data/minio_d      
  • 使用sudo docker ps -a 命令查看当前所有Docker容器的状态。当它的状态由starting变为运行时间时,说明成功启动
  • 使用上面配置的IP地址(如192.168.2.28:9000)访问即可
  • 初次使用需要输入MINIO_ACCESS_KEY,MINIO_SECRET_KEY的值,就可以开始你的工作了

可以通过Docker Compose或Swarm模式部署分布式Minio 。这两者之间的主要区别在于,Docker Compose创建了一个主机,多容器部署,而Swarm模式创建了一个多主机,多容器部署。

Docker Compose 如果没安装和不了解使用 请点击这里

version: '2'

services:
minio1:
image: minio/minio
volumes:
 - minio1:/export
ports:
 - "9001:9000"
environment:
 MINIO_ACCESS_KEY: L0DELXP9EP8JRAZLQJ90
 MINIO_SECRET_KEY: 6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2
command: server http://minio{1...4}/export
minio2:
image: minio/minio
volumes:
 - minio2:/export
ports:
 - "9002:9000"
environment:
 MINIO_ACCESS_KEY: L0DELXP9EP8JRAZLQJ90
 MINIO_SECRET_KEY: 6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2
command: server http://minio{1...4}/export
minio3:
image: minio/minio
volumes:
 - minio3:/export
ports:
 - "9003:9000"
environment:
 MINIO_ACCESS_KEY: L0DELXP9EP8JRAZLQJ90
 MINIO_SECRET_KEY: 6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2
command: server http://minio{1...4}/export
minio4:
image: minio/minio
volumes:
 - minio4:/export
ports:
 - "9004:9000"
environment:
 MINIO_ACCESS_KEY: L0DELXP9EP8JRAZLQJ90
 MINIO_SECRET_KEY: 6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2
command: server http://minio{1...4}/export


## By default this config uses default local driver,
## For custom volumes replace with volume driver configuration.
volumes:
minio1:
minio2:
minio3:
minio4:
  • Docker Compose启动集群Minio
docker-compose -f minio-compose.yaml up  //需要后台运行请加上 -d

Docker Swarm 笔者没使用过该方式如果遇到问题 请点击这里

version: '3'

services:
minio1:
image: minio/minio
volumes:
 - minio1:/export
ports:
 - "9001:9000"
networks:
 - minio_distributed
environment:
 MINIO_ACCESS_KEY: L0DELXP9EP8JRAZLQJ90
 MINIO_SECRET_KEY: 6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2
deploy:
 restart_policy:
  delay: 10s
  max_attempts: 10
  window: 60s
command: server http://minio1/export http://minio2/export http://minio3/export http://minio4/export 

minio2:
image: minio/minio
volumes:
 - minio2:/export
ports:
 - "9002:9000"
networks:
 - minio_distributed
environment:
 MINIO_ACCESS_KEY: L0DELXP9EP8JRAZLQJ90
 MINIO_SECRET_KEY: 6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2
deploy:
 restart_policy:
  delay: 10s
  max_attempts: 10
  window: 60s
command: server http://minio1/export http://minio2/export http://minio3/export http://minio4/export 

minio3:
image: minio/minio
volumes:
 - minio3:/export
ports:
 - "9003:9000"
networks:
 - minio_distributed
environment:
 MINIO_ACCESS_KEY: L0DELXP9EP8JRAZLQJ90
 MINIO_SECRET_KEY: 6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2
deploy:
 restart_policy:
  delay: 10s
  max_attempts: 10
  window: 60s
command: server http://minio1/export http://minio2/export http://minio3/export http://minio4/export 

minio4:
image: minio/minio
volumes:
 - minio4:/export
ports:
 - "9004:9000"
networks:
 - minio_distributed
environment:
 MINIO_ACCESS_KEY: L0DELXP9EP8JRAZLQJ90
 MINIO_SECRET_KEY: 6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2
deploy:
 restart_policy:
  delay: 10s
  max_attempts: 10
  window: 60s
command: server http://minio1/export http://minio2/export http://minio3/export http://minio4/export 

volumes:
minio1:
minio2:
minio3:
minio4:

networks:
minio_distributed:
driver: overlay
  • Docker Swarm启动集群Minio
docker stack deploy --compose-file=minio-swarm.yaml minio

查看logs

docker logs -f -t --tail 10 容器ID //实时查看该容器ID最后10行日志

监视容器使用的资源

docker stats 容器ID

拉取二进制Minio

wget https://dl.minio.io/server/minio/release/linux-amd64/minio

二进制启动Minio

 //挂载一个盘
./minio server /data/minio_a 
//挂载多个盘必须大于或等于4的偶数个盘
./minio server /data/minio_a /data/minio_b /data/minio_c /data/minio_d 

二进制启动集群Minio(编写minio.sh启动脚本每个节点执行相同的操作)

#!/bin/bash
export MINIO_ACCESS_KEY=L0DELXP9EP8JRAZLQJ90
export MINIO_SECRET_KEY=6FgMGySzbI+6MExdUzS0r9HjdWx9tz1teLsXH1C2
./minio server  http://192.168.2.28/data/minio http://192.168.2.29/data/minio http://192.168.2.30/data/minio http://192.168.2.21/data/minio

联系 QQ: 3355168235