启动一个mc容器,并进入容器中

docker run -it --entrypoint=/bin/sh minio/mc

分别设置 minio2019 和 minio2023 的alias

# mc alias set 别名 minio后端链接端口 管理员账号 管理员密码

# 设置minio2019的alias
mc alias set minio2019 http://ip:19000 admin admin123
# 设置minio2023的alias
mc alias set minio2023 http://ip:29000 admin admin123

迁移数据

mc迁移数据通常有下面三种场景:

#1. 全量迁移,重名文件不覆盖,如bucket不存在,会自动创建
mc mirror  minio2021 minio2023

#2. 只迁移某个bucket,以test为例,迁移的目标bucket需要提前创建
mc mirror  minio2021/test  minio2023/test  #test要提前在minio2023中创建
 
#3. 加上--overwrite参数,覆盖重名文件
mc mirror  --overwrite  minio2021 minio2023
mc mirror  --overwrite  minio2021/test  minio2023/te

这里使用第一种方式,全量迁移,重名文件不覆盖,如bucket不存在,会自动创建

[root@master minio2019]# mc mirror  minio2019 minio2023

查看迁移结果

[root@master minio2019]# tree /usr/local/minio2023
/usr/local/minio2023
├── config
│   └── certs
│       └── CAs
├── data
│   └── test2019
│       ├── image-01.png
│       ├── image-02.png
│       ├── image-03.png
│       └── image-04.png

全流程

#cmd
mc.exe alias set m1 http://minio1/
minioadmin
minioadmin

mc cp --recursive m1/bucket bucket 

打包为zip包,上传服务器

mc mirror --overwrite bucket/bucket m2/bucket 

docker pull minio/mc:RELEASE.2023-06-28T21-54-17Z
docker save docker.io/minio/mc:RELEASE.2023-06-28T21-54-17Z > mc.tar
上传服务器
docker load -i  mc.tar
docker run -it -v '/data/bucket:/bucket' --entrypoint=/bin/bash minio/mc:RELEASE.2023-06-28T21-54-17Z # 
mc  alias set qhd http://m2
minioadmin
minioadmin
mc mirror --overwrite bucket m2/bucket