Docker安装MinIO遇到的问题汇总——持续更新中

这篇具有很好参考价值的文章主要介绍了Docker安装MinIO遇到的问题汇总——持续更新中。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker安装MinIO遇到的坑

前言

本文章记录作者使用Docker安装MinIO过程中遇到的所有问题,将持续更新,如果你在使用Docker安装MinIO过程中遇到了一些问题,但是本文没有记载,你可以直接在本文评论区贴图、或打字描述,这样大家都能看到,可以给你一些建议,从而不断完善,让后来者少走更多的弯路,作者这一路也受到很多这样的博主的无形之中的帮助,所以作者也想成为这样能够无形之中帮助他人的人,这也算是一种善吧,“勿以善小而不为,勿以恶小而为之”,这也是我一直坚持记录Bug的出发点之一,一起加油吧,初学者

PS:由于笔者也是一个初学者,所以文中可能对于一些问题原因的解释不到位,如果您知道,还请及时告知在下,同时如果对于一些问题,你有更好的解决方案,也请你能够分享给笔者,万分感谢

问题1:执行docker run报错Error response from daemon

  • 问题:执行docker run报错Error response from daemon

    docker: Error response from daemon: driver failed programming external connectivity on endpoint minio (b78ded203d04164bc5d4a2e9dae2a4cdda9f4377950d38e9d0b46d033ca4608c): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9000 -j DNAT --to-destination 172.17.0.3:9000 ! -i docker0: iptables: No chain/target/match by that name.
    (exit status 1)).
    

    minio常见报错,Bug记录,docker,bug

  • 问题原因:没有开启防火墙。

    我执行docker run进行端口映射时,需要使用防火墙,但是由于我是关闭了防火墙的原因,所以导致无法进行映射,从而出现报错

  • 问题解决:开启防火墙,重新启动MinIO容器

    # 查看防火墙状态
    systemctl status firewalld.service 
    # 开启防火墙
    systemctl start firewalld.service 
    # 关闭防火墙
    systemctl stop firewalld.service 
    

问题2:启动MinIO容器浏览器无法访问

  • 问题:启动MinIO容器浏览器无法访问

    minio常见报错,Bug记录,docker,bug

  • 问题原因:存在两个问题

    • 问题1:使用了过期的配置

      自从RELEASE.2021-02-10T23-14-37Z 版本开始引入了引入了鉴权功能,并且在首次启动时需要设置根用户和密码,MinIO就不在使用 MINIO_ACCESS_KEYMINIO_SECRET_KEY 进行访问鉴权,而是直接使用MINIO_ROOT_USERMINIO_ROOT_PASSWORD

    • 问题2:没有为MinIO配置静态端口

      这个问题涉及到了Docker和MinIO的运行机制,当你使用Docker启动MinIO服务时,默认情况下,它会在一个动态的端口上监听,这个端口是由Docker守护程序选择的。这种动态监听的机制可以使得Docker容器能够更好地与其他容器进行通信,因为它们都在同一个Docker网络上。

      minio常见报错,Bug记录,docker,bug

  • 问题解决

    • 对于问题1:要么降低MinIO的版本,要么就将 MINIO_ACCESS_KEYMINIO_SECRET_KEY 配置项改为MINIO_ROOT_USERMINIO_ROOT_PASSWORD

    • 对于问题2:使用下面配置项使得端口静态化

      --console-address ":9000" --address ":9001"
      

问题3:上传文件报错InvalidResponseException

  • 问题:上传文件报错S3 API Request made to Console port. S3 Requests should be sent to API port.

    minio常见报错,Bug记录,docker,bug

    io.minio.errors.InvalidResponseException: Non-XML response from server. Response code: 403, Content-Type: text/xml; charset=utf-8, body: <?xml version="1.0" encoding="UTF-8"?>
    <Error>
      <Code>AccessDenied</Code>
      <Message>S3 API Request made to Console port. S3 Requests should be sent to API port.</Message>
      <RequestId>0</RequestId>
    </Error>
    
  • 问题原有:用错了MinIO的端口号

    前面我们通过--console-address ":9000" --address ":9001"配置了MinIO的网页控制台端口号是9000,而MinIO服务的端口是9090,我在项目中使用了控制台端口号

  • 问题解决:将端口号改为MinIO的服务端口号9001

问题4:上传文件报错Connection refused

  • 问题:上传文件报错Connection refused

    minio常见报错,Bug记录,docker,bug

  • 问题原因:没有配置MinIO端口映射。

    之前我只配置了MinIO控制台的端口映射,但是没有为MinIO服务配置端口映射,导致Docker容器中的端口没有对虚拟机开放,从而导致连接不上,这一点坑了我好久┭┮﹏┭┮(如果这一点大家也踩坑了,就给我点个赞吧,安慰一下我)

  • 问题解决:配置MinIO服务端口映射

    -p 9001:9001
    

最终的启动指令

docker run \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-d \
--restart=always \
-e "MINIO_ROOT_USER=root" \
-e "MINIO_ROOT_PASSWORD=32345678" \
-v /usr/local/soft/minio/data:/data \
-v /usr/local/soft/minio/config:/root/.minio \
minio/minio \
server \
/data \
--console-address ":9000" \
--address ":9001"
  • docker run:命令用于创建和运行Docker容器。

  • -p:选项指定了端口映射

    • -p 9000:9000:将主机的9000端口映射到容器内部的9000端口,以便通过主机的9000端口访问MinIO控制台。
    • -p 9001:9001:将主机的9001端口映射到容器内部的9001端口,以便通过注解的9001端口访问MinIO服务
  • --name minio:选项为容器指定了一个名称,即"minio",这样可以方便地引用该容器。

  • -d:选项将容器设置为“后台模式”,使得容器在后台运行。

  • --restart=always:选项指定了容器的重启策略,即容器在退出时总是自动重新启动。

  • -e "MINIO_ROOT_USER=root":选项通过环境变量设置MinIO的访问密钥(Access Key)为"root"。

  • -e "MINIO_ROOT_PASSWORD=32345678":选项通过环境变量设置MinIO的密钥(Secret Key)为"32345678"。

  • -v /usr/local/soft/minio/data:/data:选项指定了数据卷的挂载,将主机的"/home/data"目录挂载到容器的"/data"目录,用于持久化存储MinIO的数据。

  • -v /usr/local/soft/minio/config:/root/.minio:选项指定了配置卷的挂载,将主机的"/home/config"目录挂载到容器的"/root/.minio"目录,用于持久化存储MinIO的配置文件。

  • minio/minio:指定使用的镜像名称为minio/minio,即MinIO官方提供的Docker镜像。

  • server /data:参数指定了MinIO服务器的配置。"/data"是MinIO服务器将用于存储数据的目录路径。

  • --console-address ":9000":指定MinIO控制台端口,确保任何尝试连接到这个端口的客户端或应用程序都可以使用这个端口

  • --address ":9001":指定MinIO服务端口,将Docker守护程序绑定到指定的端口上

成功启动并访问

minio常见报错,Bug记录,docker,bug

总结前四个问题,本质都是启动指令的问题

问题5:上传文件报错Unsupported OkHttp library found. Must use okhttp >= 4.8.1

注意:这几个问题不是同一个项目中遇到的,前面4个问题是在SpringBoot整合MinIO遇到的,后面的问题是平常开发中遇到的

  • 问题:上传文件报错Unsupported OkHttp library found. Must use okhttp >= 4.8.1

    minio常见报错,Bug记录,docker,bug

  • 问题原因:SpringBoot版本问题(本质是OkHttp和MinIO版本不兼容)

    MinIO依赖中有使用到OkHttp依赖,因为客户端与服务端发送文件都是需要发送Http请求的,这个OkHttp依赖的版本会受到SpringBoot版本的影响,SpringBoot2.3版本使用的是OkHttp3,SpringBoot2.7版本使用的是OkHttp4,而我当前项目中使用的MinIO是8.5.2,这个版本最低要求是是4.x,而我使用的SpringBoot2.3,自动就引入了OkHttp3.x,导致不兼容

    minio常见报错,Bug记录,docker,bug

    一下是常见的MinIO版本与OkHttp版本的对照情况:

    MinIO 版本 最低 OkHttp 版本要求 兼容 OkHttp 版本
    8.x.x 4.8.1 4.x.x, 5.x.x
    7.x.x 3.14.0 3.x.x
    6.x.x 3.12.0 3.x.x
  • 解决方法

    • 方案一:提高SpringBoot版本,将SpringBoot版本提高至2.4,2.4版本的SpringBoot版本默认改用了OkHttp4,刚好和 MinIO8.x兼容(不推荐,因为项目更换SpringBoot版本成本比较高)

    • 方案二:降低MinIO版本,将MinIO的版本降低至7.x,这个版本的MinIO兼容OkHttp3.x(不太推荐)

    • 方案三:直接手动引入OkHttp4.x,覆盖掉SpringBoot中的OkHttp3.x

              <dependency>
                  <groupId>io.minio</groupId>
                  <artifactId>minio</artifactId>
                  <version>8.5.2</version>
                  <exclusions>
                      <exclusion>
                          <artifactId>okhttp</artifactId>
                          <groupId>com.squareup.okhttp3</groupId>
                      </exclusion>
                  </exclusions>
              </dependency>
              <dependency>
                  <groupId>com.squareup.okhttp3</groupId>
                  <artifactId>okhttp</artifactId>
                  <version>4.9.3</version>
              </dependency>
      

      PS:还有一个注意点,如果我这个minio是一个starter,那么在starter中排除OkHttp版本再引入是无效的,需要到引用starter的项目中去排除OkHttp版本,然后再引用对应的OkHttp版本

参考文章文章来源地址https://www.toymoban.com/news/detail-763651.html

  • docker搭建最新minio访问不了页面解决及注意事项-CSDN博客
  • Java MINIO使用踩坑&解决_-CSDN博客
  • Minio Unsupported OkHttp library found. Must use okhttp >= 4.8.1_嘟嘟Listing的博客-CSDN博客

到了这里,关于Docker安装MinIO遇到的问题汇总——持续更新中的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker 安装MinIO步骤

    在命令行使用 docker search minIO : 如果能查出来证明docker安装的没问题,然后开始下一步 minio官网:MinIO High Performance Object Storage — MinIO Object Storage for Container 查看所有镜像 创建并启动minIO容器: 这里的 指的是命令还没有输入完,还需要继续输入命令,先不要执行的意思。

    2024年02月16日
    浏览(33)
  • docker安装minio集群

    1、所有节点配置主机名解析 2、配置时间同步,关闭防火墙和selinux。 3、所有节点安装docker 4、部署minio集群,3个节点每个节点挂载2个目录 10.20.138.52 10.20.138.53 10.20.138.54 5、访问任意节点的9000端口测试 输入:账户:admin / 密码:xx

    2023年04月10日
    浏览(28)
  • docker-安装minio集群

    目录 1.服务器列表 2.NTP时间同步 1.服务端 minio_01配置 2.客户端配置-minio_02、minio_03、minio_04配置 3.Minio集群 1.在对应的主机执行对应的语句 2.创建文件夹 3.创建容器 4.访问 5.查看集群 4.nginx代理集群192.168.1.3 1.nginx安装 2.访问代理 ame ip 远程端口 minio_04 192.168.1.11 22 minio_03 192.168.

    2024年02月07日
    浏览(30)
  • docker minio安装

    Minio是一款开源的对象存储服务,它可以在任何硬件或云平台上提供高性能、高可用性和高安全性的存储解决方案。Minio最新版是2021年11月发布的RELEASE.2021-11-24T23-19-33Z,它带来了以下几个方面的改进和新特性: - 支持S3 Select API,可以在对象存储层面对数据进行过滤、转换和聚

    2024年02月07日
    浏览(28)
  • docker 安装 Minio

    搜索可安装版本 docker search minio 安装对应版本 docker pull minio/minio 创建挂在路径 mkdir -p /home/docker/minio/data mkdir -p /home/docker/minio/config 启动Minio容器 docker run -p 9000:9000 -p 9001:9001 --name minio -d --restart=always -e “MINIO_ROOT_USER=ruoyiadmin” -e “MINIO_ROOT_PASSWORD=ruoyiadmin” -v /home/docker/minio/da

    2024年02月09日
    浏览(32)
  • Docker安装MinIO详细步骤

    本篇博客主要记录在Docker当中安装MinIO。 在命令行使用 docker search minIO : 如果能查出来证明docker安装的没问题,然后开始下一步 minio官网:https://docs.min.io/docs/minio-docker-quickstart-guide.html 查看所有镜像 创建并启动minIO容器: 这里的 指的是命令还没有输入完,还需要继续输入

    2024年02月01日
    浏览(34)
  • 深度学习和日常代码中遇到的报错汇总及解决方案,持续更新中。。。。

    本文是深度学习和日常代码中遇到的报错汇总,因时间比较久,暂时都没有图片,只有文字描述。解决方案也大多参考网上的解决方案,有些有用,有些没有效果,本文章中的问题,也仅是本人遇到的问题,使用列举的方案已经解决。 处理:调用的方法是一个类,需要先进行

    2023年04月22日
    浏览(55)
  • 云服务器 docker 安装 MinIO

    1. 执行命令  docker pull minio/minio  下载稳定版本镜像 docker pull minio/minio 2. 创建并启动minio容器  MINIO_ACCESS_KEY是登录的用户名,MINIO_SECRET_KEY是登陆的密码,根据自己的情况来设置登录的用户名和密码  3. 开放9000端口 4. 访问登录,使用IP+9000 登录即可测试,然后输入自己在启动

    2024年02月11日
    浏览(52)
  • Docker安装MinIO并配置HTTPS安装访问

    1、安装MinIO 2、前往阿里云下载免费的证书文件(注意:要Apache版的) 3、修改公钥和私钥文件名为private.key public.crt 4、把这两个文件上传到服务器,我放到了/Home文件夹下,然后复制到容器内部 5、进入容器内部查看证书文件是否成功复制到容器内部 6、重新启动minio 然后就可

    2024年01月21日
    浏览(45)
  • Docker安装minio---简单三步,保姆级教程

    简介: Minio是一个基于Apache License v2.0开源协议的对象存储服务,虽然轻量,却拥有着不错的性能。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。  例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几

    2024年04月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包