minio
官网介绍:MinIO 是一种高性能、S3 兼容的对象存储。
它专为大规模 AI/ML、数据湖和数据库工作负载而构建,并且它是由软件定义的存储。
不需要购买任何专有硬件,就可以在云上和普通硬件上拥有分布式对象存储。
MinIO拥有开源 GNU AGPL v3 和商业企业许可证的双重许可。
下载地址
注意
minio/minio:RELEASE.2022-06-02T02-11-04Z之前版本用的是老的存储格式 minio/minio:RELEASE.2022-06-02T02-11-04Z及之后的版本会将文件存成目录的形式
docker部署minio
dockercompose部署minio
创建名为docker-compose.yml的文件,内容如下
services:
minio:
image: quay.io/minio/minio
container_name: minio
ports:
- "9090:9090"
- "9000:9000"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
volumes:
- "/data/minio/data:/data"
command: server /data --console-address ":9090"
restart: always
networks:
- 网络名数据迁移
建议使用官方推荐的mc来进行数据迁移 mc 的命令如下
alias set, remove and list aliases in configuration file
ls list buckets and objects
mb make a bucket
rb remove a bucket
cp copy objects
mirror synchronize object(s) to a remote site
cat display object contents
head display first 'n' lines of an object
pipe stream STDIN to an object
share generate URL for temporary access to an object
find search for objects
sql run sql queries on objects
stat show object metadata
mv move objects
tree list buckets and objects in a tree format
du summarize disk usage recursively
retention set retention for object(s)
legalhold set legal hold for object(s)
diff list differences in object name, size, and date between two buckets
rm remove objects
encrypt manage bucket encryption config
event manage object notifications
watch listen for object notification events
undo undo PUT/DELETE operations
policy manage anonymous access to buckets and objects
tag manage tags for bucket(s) and object(s)
ilm manage bucket lifecycle
version manage bucket versioning
replicate configure server side bucket replication
admin manage MinIO servers
update update mc to latest release不同版本迁移(使用mc)
注意
下面的代码中source为需要迁移的宿主机,target为目标机 二者都需要用mc起别名(如果两个服务无法用mc链接,则两个机器上都要有mc)
可以链接两个服务的情况下
注意
由于直接连接会报错,所以让容器都使用同一个网络(报错如图所示);由于直接使用,mc的数据没有保存,所以需要使用数据卷 
- 需要替换的数据卷为
F:\docker_volumes - 需要替换的网络为
host - 需要替换的别名为
source和target - --rm 参数在命令执行完后自动删除容器
设置源 MinIO 别名
docker run --rm --network host -v F:\docker_volumes\mc-config:/root/.mc minio/mc alias set source http://127.0.0.1:9000 minioadmin minioadmin设置目标 MinIO 别名
docker run --rm --network host -v F:\docker_volumes\mc-config:/root/.mc minio/mc alias set target http://127.0.0.1:9001 minioadmin minioadmin查看别名设置是否成功
docker run --rm --network host -v F:\docker_volumes\mc-config:/root/.mc minio/mc alias list查看源 MinIO 中的桶(执行结果如下,我只建了一个名为bzl-bucket的桶)
docker run --rm --network host -v F:\docker_volumes\mc-config:/root/.mc minio/mc ls source[2025-01-03 14:10:29 UTC] 0B bzl-bucket/迁移一个桶(多个桶就多复制粘贴一下)
docker run --rm --network host -v F:\docker_volumes\mc-config:/root/.mc minio/mc mirror source/bzl-bucket target/bzl-bucket迁移全部桶
docker run --rm --network host -v F:\docker_volumes\mc-config:/root/.mc minio/mc mirror source target
新版minio直接迁移到老版minio后
两个机器无法链接的情况(导出再导入)
注意
mc导出后,文件会还原为原本的格式!!!
导出单个桶的数据(多个桶就多复制粘贴一下)
docker run --rm --network host -v F:\docker_volumes\minio_backup:/backup -v F:\docker_volumes\mc-config:/root/.mc minio/mc cp --recursive source/bzl-bucket /backup/bzl-bucket导出所有桶
docker run --rm --network host -v F:\docker_volumes\minio_backup:/backup -v F:\docker_volumes\mc-config:/root/.mc minio/mc cp --recursive source/ /backup/
备份文件导入到老版本minio
备份文件导入到新版本minio
导入单个桶(不会自动创建桶)(多个桶就多复制粘贴一下)
docker run --rm --network host -v F:\docker_volumes\minio_backup:/backup -v F:\docker_volumes\mc-config:/root/.mc minio/mc cp --recursive /backup/bzl-bucket target/bzl-bucket导入所有桶(不会自动创建桶)
docker run --rm --network host -v F:\docker_volumes\minio_backup:/backup -v F:\docker_volumes\mc-config:/root/.mc minio/mc cp --recursive /backup/ target/导入所有桶(mirror命令会自动创建桶)
docker run --rm --network host -v F:\docker_volumes\minio_backup:/backup -v F:\docker_volumes\mc-config:/root/.mc minio/mc mirror /backup/ target/
同版本迁移(不推荐这个方法,建议用mc来迁移)
注意
该方法只适用于同版本的minio!!! 做法:只需将需要迁移的数据拷贝到目标minio的数据目录即可(通常为/data)
将需要迁移的目录或者桶目录打包
zip -r 目录将打好的zip资源包传输到目标服务器的数据卷位置,上面docker对应的数据卷位置为/data/minio/data 解压zip资源包
cd /data/minio/data
unzip 资源包访问服务器中minio控制台,查看是否正常
127.0.0.1:9090版本界面查看
测试镜像从docker hub上拉的
大于这个版本的界面:minio/minio:RELEASE.2022-12-12T19-27-27Z
小于这个版本的界面:minio/minio:RELEASE.2022-12-02T19-19-22Z
小于这个版本的界面:minio/minio:RELEASE.2022-06-07T00-33-41Z
小于这个版本的界面:minio/minio:RELEASE.2022-03-03T21-21-16Z
之后的没统计了

备份文件导入到新版本minio 



