docker启动minio容器异常问题

前言:第一次在这里记录,各位大佬请指正,感谢!后续会将个人之前遇到的坑都记录在这里,大家共同交流学习。

一、minio服务器磁盘耗尽

   1)docker服务启动异常

        命令:systemctl start docker

       异常信息:Authorization not available. Check if polkit service is running or see debug message for more information.

       解决方案:

      1、查看磁盘使用情况,命令:df -h  ,结果如下,磁盘 /dev/vda1已满  ,新挂载一块磁盘  /dev/vdb。

        可以删除一些日志文件,释放部分空间。

        

      2、查看内存使用情况,命令:free -h,结果如下,可以看到爆满

       

        在此,粗暴的执行了释放内存命令(前提是确保机器没有其它应用)

        [root@VM_129_70_linux containerd]# sync

        [root@VM_129_70_linux containerd]# echo 3 > /proc/sys/vm/drop_caches

      3、查看docker配置,命令:cat /usr/lib/systemd/system/docker.service,没有异常,在这里还折腾重装了docker,结果依然是又报错,但是查看docker状态已经是running,所以继续往下解决其它问题。 命令:systemctl status docker -l

       

   2)minio启动报错    

         [root@VM_129_70_linux containerd]#  docker run -d -p 9000:9000 -p 9090:9090 --        name=minio --restart=always -e "MINIO_ROOT_USER=admin" -e         "MINIO_ROOT_PASSWORD=1234" -v /home/data:/data -v /home/config:/root/.minio          minio/minio server /data --console-address ":9090" --address ":9000"

        1fe8c75f59d9c87838bdbadb70357beb500d1ea8408b67b371a88f28a987861d

        docker: Error response from daemon: failed to start shim: start failed: io.containerd.runc.v2:         open         /run/docker/containerd/daemon/io.containerd.runtime.v2.task/moby/1fe8c75f59d9c87838bd        badb70357beb500d1ea8408b67b371a88f28a987861d/.address: no such file or directory:         exit status 1: unknown.

         表象是容器下面的.address 文件不存在,即创建失败,到对应目录下看1fe8c75f59d9        容器文件夹都没有创建。

        查看docker状态(systemctl status docker -l),找到如下报错日志:

        Jan 27 16:51:41 VM_129_70_linux dockerd[3450]: time="2024-01-        27T16:51:41.154845492+08:00" level=error msg="copy shim log" error="read         /proc/self/fd/14: file already closed"

        Jan 27 16:51:41 VM_129_70_linux dockerd[3450]: time="2024-01-27T16:51:41.155256573+08:00" level=error msg="stream copy error: reading from a closed fifo"

        Jan 27 16:51:41 VM_129_70_linux dockerd[3450]: time="2024-01-27T16:51:41.155295978+08:00" level=error msg="stream copy error: reading from a closed fifo"

        Jan 27 16:51:41 VM_129_70_linux dockerd[3450]: time="2024-01-27T16:51:41.254273868+08:00" level=error msg="1fe8c75f59d9c87838bdbadb70357beb500d1ea8408b67b371a88f28a987861d cleanup: failed to delete container from cont... such container

   

        原因出现在 /proc/self/fd/14,网上找了很多资料,这个问题始终没有解决。最后联想到前面内存和磁盘空间爆满,意识到是进程管道相关异常了,系统在资源管理已经存在缺失,决定联系管理员重启机器赌一把。结果是:问题得到解决,docker启动和文件流关闭的问题都正常了。

二、minio文件目录迁移

      1、下载和安装mc客户端

            由于是内网环境,mc是本地下载完成后上传到机器的,下载地址:

https://dl.min.io/client/mc/release/linux-amd64/mcicon-default.png?t=N7T8https://dl.min.io/client/mc/release/linux-amd64/mc

           安装:

                chmod a+x mc

                mv mc /usr/local/bin/

                mv --version

    2、启动两个minio服务

        //源服务

        docker run -d -p 9000:9000 -p 9090:9090 --name=minio-old --restart=always -e         "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=1234" -v         /home/data:/data -v /home/config:/root/.minio  minio/minio server /data --console-address ":9090" --address ":9000"

        //目标服务

        docker run -d -p 9003:9003 -p 9093:9093 --name=minio-new --restart=always -e         "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=1234" -v         /data/minio:/data -v /home/config:/root/.minio  minio/minio server /data --console-address ":9093" --address ":9003"

     3、mc添加服务

         mc alias set minio-old http://127.0.0.1:9000 admin 1234

         mc alias set minio-new http://127.0.0.1:9003 admin 1234

     4、执行迁移脚本

        mc mirror  minio-old minio-new

        执行的是全量迁移,可以根据不同场景选择迁移脚本,参考脚本如下:

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

        mc mirror  minio-old minio-new

        #2. 只迁移某个bucket,以test为例,迁移的目标bucket需要提前创建

        mc mirror  minio-old/test  minio-new/test  #test要提前在minio-new中创建

        #3. 加上--overwrite参数,覆盖重名文件

        mc mirror  --overwrite  minio-old minio-new

        mc mirror  --overwrite  minio-old/test  minio-new/test

    5、重新指定文件目录

      将新的minio服务指向原有端口,之前的应用就可以无感访问了。

       指向新的服务后,很多资源不可访问,报错Access Denied

        解决方案:

         1)查看了nginx配置和防火墙相关配置,均无异常。

         2)后来发现是桶的权限变成了private,通过控制台更改成public即可正常访问。暂不清楚迁移为什么会改变访问权限。

最后问题得到圆满解决,继续探索~

  • 25
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用Docker启动Minio,你可以按照以下步骤进行操作: 1. 首先,使用以下命令从Docker Hub下载Minio镜像: ``` docker pull minio/minio ``` 2. 接下来,可以使用以下命令在Docker容器启动Minio: ``` docker run -p 9000:9000 -p 9001:9001 --name minio -d --restart=always \ -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio" \ -v /data/docker/minio/data:/data \ -v /data/docker/minio/config:/root/.minio \ minio/minio server /data ``` 这个命令会将Minio容器的9000端口映射到主机的9000端口,并将9001端口映射到本地的9001端口。它还设置了访问Minio的用户名和密码,并将数据和配置文件挂载到主机上的相应目录。 3. 当Minio容器成功启动后,你可以使用Java代码来连接和使用Minio对象存储服务。可以使用Minio Java客户端库来实现。具体的代码示例可以参考Minio官方文档。 例如,你可以使用以下代码来连接到Minio服务器: ```java import io.minio.MinioClient; public class MinioExample { public static void main(String[] args) { try { // 创建Minio客户端对象 MinioClient minioClient = new MinioClient("http://localhost:9000", "minio", "minio"); // 连接到Minio服务器 boolean isConnected = minioClient.isConnected(); System.out.println("Minio服务器连接状态:" + isConnected); } catch (Exception e) { e.printStackTrace(); } } } ``` 你需要根据实际情况修改代码中的服务器地址、用户名和密码。 通过以上步骤,你就可以使用Docker启动Minio,并在Java中使用Minio对象存储服务了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Docker 搭建 Minio 容器 (完整详细版)](https://blog.csdn.net/BThinker/article/details/125412751)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [DockerMinIO的使用](https://blog.csdn.net/liu_xin_xin/article/details/121851590)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值