Minio资源迁移

Minio资源迁移

✅作者简介:大家好,我是爪哇小小怪,目前就职于武汉某IT公司,两年JAVA开发经验。

今天分享一个关于Minio资源迁移的文章。

去年六月,我自费了37元购买了一台云服务器,主要是为了深入掌握Linux系统的操作命令,并加强对项目运维部署的实践。随着当前服务器的到期日期临近,我意识到需要将之前部署在上面的MinIO环境中存储的重要资源进行备份,并迁移至新的腾讯云服务器上。

在尝试迁移过程中,我了解到腾讯云提供了资源镜像迁移的功能。然而,我尝试使用这一功能时,发现迁移过程异常漫长,即使电脑持续运行超过30小时,也未见明显进展。鉴于这种情况,我果断决定中止迁移过程。

由于我最初在云服务器上部署MinIO时采用了Docker技术,因此在此,我主要分享如何通过使用Docker来迁移MinIO中存储的重要资源。

操作步骤

  1. 使用docker ps -a命令查看minio当前是否正常运行
    在这里插入图片描述

    当MinIO status(状态)是up时,则一切是正常的状态

  2. 在root目录下使用命令新建一个minio_data目录··

    mkdir minio_data
    
  3. 使用docker cp minio:/data ./minio_data 命令将 minio 容器的 /data 目录复制到宿主机的 minio_data 目录中。操作成功后如下图所示:
    在这里插入图片描述

    这里为了进一步验证是否成功也可以通过ls 命令 和 cd命令去查看minio_data目录下是否存在文件
    在这里插入图片描述

  4. 完成以上3步操作后,去创建一个dockerfile,在dockerfile中输入以下内容

    FROM minio/minio
    
    COPY minio_data /data
    
    ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
    CMD ["minio", "server", "/data"]
    

    相关解释
    FROM minio/minio:这一行定义了基础镜像,这里是官方的MinIO镜像。这意味着你的新镜像将从这个已存在的、包含了MinIO服务的镜像开始构建。

    COPY minio_data /data:这行命令将主机(Host)上的minio_data目录复制到新建的Docker镜像内的/data目录。在MinIO服务器运行时,/data`通常用于存储对象存储的数据。

    ENTRYPOINT [“/usr/bin/docker-entrypoint.sh”]ENTRYPOINT指令定义了容器启动时执行的主进程。这里设置为/usr/bin/docker-entrypoint.sh`,这是一个通常由Docker镜像提供,用于设置环境、初始化系统等任务的脚本。

    CMD [“minio”, “server”, “/data”]CMD指令提供了默认的命令参数,当容器启动且没有其他命令指定时,会执行这个命令。这里启动MinIO服务器,并指定数据存储路径为/data

    总结:这个Dockerfile创建了一个Docker镜像,该镜像基于MinIO的基础镜像,启动时会运行MinIO服务器,使用/data目录作为数据存储位置,且可能在启动前执行一些初始化操作(如docker-entrypoint.sh)。

  5. 使用docker build 构建一个新的minio镜像,这个新的镜像是基于第4步中的Dockerfile构建自定义的minio镜像,注意dockerfile和minio_data必须在同一个目录下,执行相关命令必须是在root目录下进行。
    在这里插入图片描述

  6. 构建完成后,输入docker images,进行确认构建的镜像是否存在
    在这里插入图片描述

    通过此处可以看到minio_1镜像已经成功进行构建

  7. 使用docker save -o minio_1.tar minio/minio:latest 将其打包为一个tar包,并通过ftp或scp将这个tar包传输至新的服务器上

  8. 传输完成后,可通过ls命令检测tar包是否已经传输到了新服务器上

在这里插入图片描述

  1. 在根目录下,执行mkdir minio_data命令来新建一个名为minio_data的文件夹,该文件夹将作为MinIO的挂载目录。

  2. 完成第9步后,切换到root 目录下使用docker load相关命令导入加载镜像

  docker load -i minio_1.tar

在这里插入图片描述

  1. 加载完成后,再使用docker images 命令查看镜像是否已经存在了
    在这里插入图片描述

  2. 镜像如果存在,则进行最后一步,使用docker run命令 执行启动这个镜像

    docker run -d \
      -p 9000:9000 \
      -p 9001:9001 \
      --name minio_1 \
      --restart=always \
      -e "MINIO_ROOT_USER=minioadmin" \
      -e "MINIO_ROOT_PASSWORD=minioadmin" \
      -v /minio_data:/minio_data \
      -v /home/minio/config:/root/.minio \
      minio_1 server /minio_data --console-address ":9001"
    

    相关解释如下:
    docker run -d:

    • docker run: 启动一个新的容器实例。
    • -d: 以“分离模式”(detached mode)运行容器,这意味着容器将在后台运行,并且你不会看到其输出。

    -p 9000:9000 -p 9001:9001:

    • 这两个 -p 标志将主机的端口映射到容器中的端口。
    • 9000:9000: 将主机的 9000 端口映射到容器的 9000 端口(通常是 MinIO 的数据端口)。
    • 9001:9001: 将主机的 9001 端口映射到容器的 9001 端口(这里用于 MinIO 的控制台)。

    --name minio_1:

    • 为容器指定一个名称,这里是 minio_1

    --restart=always:

    • 无论容器退出时是什么状态,Docker 都会始终重启该容器。这确保了 MinIO 服务的可用性。

    -e "MINIO_ROOT_USER=minioadmin" -e "MINIO_ROOT_PASSWORD=minioadmin":

    • 这两个 -e 标志用于设置环境变量。
    • 第一个设置 MinIO 的根用户名为 minioadmin
    • 第二个设置 MinIO 的根用户密码为 minioadmin

    -v /minio_data:/minio_data -v /home/minio/config:/root/.minio:

    • 这两个 -v 标志用于将主机的目录或文件挂载到容器中。
    • /minio_data:/minio_data: 将主机上的 /minio_data 目录挂载到容器中的 /minio_data 目录。这意味着 MinIO 将在这个目录中存储其数据。
    • /home/minio/config:/root/.minio: 将主机上的 /home/minio/config 目录挂载到容器中的 /root/.minio 目录。这通常用于存储 MinIO 的配置文件。

    minio_1 server /minio_data --console-address ":9001":

    • 这部分是传递给 MinIO 容器实例的命令。
    • server /minio_data: 启动 MinIO 服务器,并使用 /minio_data 目录作为存储数据的根目录。
    • --console-address ":9001": 设置 MinIO 控制台的监听地址为 9001 端口。
  3. 执行启动后,使用docker ps -a检查minio使用运行正常,运行正常的效果图如下:
    在这里插入图片描述

  4. 接着输入对应的ip地址看是否可以访问minio,(提示:minio的端口别忘记在服务器的防火墙规则上进行放行),正常访问的效果图如下:
    在这里插入图片描述
    在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值