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 如果没安装和不了解使用 请点击这里
- 编写minio-compose.yaml 使用工具
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 -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 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