Docker部署项目报错

1.问题概述

最近在只用学习使用docker部署一个springboot项目,使用的项目是ruoyi-vue,在部署过程中出现docker去拉取jdk版本的时候报错,错误如图:

在这里插入图片描述

1.1 具体错误信息:

[+] Building 21.2s (2/2) FINISHED                                                                  docker:default
 => [internal] load build definition from Dockerfile                                                         0.0s
 => => transferring dockerfile: 326B                                                                         0.0s
 => ERROR [internal] load metadata for docker.io/library/openjdk:8-jdk-alpine                               21.2s
------
 > [internal] load metadata for docker.io/library/openjdk:8-jdk-alpine:
------
Dockerfile:2
--------------------
   1 |     # 使用官方OpenJDK8镜像
   2 | >>> FROM openjdk:8-jdk-alpine
   3 |     
   4 |     # 设置工作目录
--------------------
ERROR: failed to solve: openjdk:8-jdk-alpine: failed to resolve source metadata for docker.io/library/openjdk:8-jdk-alpine: unexpected status from HEAD request to https://2k9xnnig.mirror.aliyuncs.com/v2/library/openjdk/manifests/8-jdk-alpine?ns=docker.io: 403 Forbidden

我部署项目使用的dockerfile文件的内容如下:

在这里插入图片描述

**注意:**我使用的是可自动升级的一个jdk的版本openjdk:8-jdk-alpine,如果是生产环境建议使用稳定版本

1.2 错误分析:

ERROR: failed to solve: openjdk:8-jdk-alpine: 
failed to resolve source metadata for docker.io/library/openjdk:8-jdk-alpine: 
unexpected status from HEAD request to https://2k9xnnig.mirror.aliyuncs.com/...: 
403 Forbidden
  1. 根本原因

    • Docker 配置了阿里云镜像加速器(2k9xnnig.mirror.aliyuncs.com)

    • 但该加速器返回了 403 禁止访问,说明镜像可能已被移除或权限不足

      原因解析:我虽然在 /etc/docker/daemon.json文件中配置了自己的阿里云镜像加速,但是由于镜像可能被移除也导致了去拉取该镜像时失败

  2. 背景情况

    • openjdk:8-jdk-alpine 官方已停止维护(OpenJDK 8 的 Alpine 版本已从 Docker Hub 移除)
    • 阿里云镜像仓库可能同步移除了该镜像

1.3 问题解决

从以上过程知道是 /etc/docker/daemon.json文件中配置的镜像版本出错,于是就需要修改该文件中的*“registry-mirrors”:*中的属性值,修改为如下:

"registry-mirrors": [
        "https://docker.registry.cyou/",
        "https://docker-cf.registry.cyou/",
        "https://dockercf.jsdelivr.fyi/",
        "https://docker.jsdelivr.fyi/",
        "https://dockertest.jsdelivr.fyi/",
        "https://mirror.aliyuncs.com/",
        "https://dockerproxy.com/",
        "https://mirror.baidubce.com/",
        "https://docker.m.daocloud.io/",
        "https://docker.nju.edu.cn/",
        "https://docker.mirrors.sjtug.sjtu.edu.cn/",
        "https://docker.mirrors.ustc.edu.cn/",
        "https://mirror.iscas.ac.cn/",
        "https://docker.rainbond.cc/",
        "https://jq794zz5.mirror.aliyuncs.com"
    ]

1.4 修改步骤:

vim /etc/docker/daemon.json 进入对应文件(如果不存在该文件,会自动创建该文件),输入 i 进入编辑模式,然后复制上述内容到文件中,如下所示:

在这里插入图片描述

点击 esc 退出编辑模式,输入 :wq! 强制保存

1.5 接下来就是重启docker

  • 重新加载配置

    systemctl daemon-reload

  • 重启docker

    systemctl restart docker

  • 查询配置是否生效

    docker info

生效结果如下:

在这里插入图片描述

上述配置完成之后,在使用docker去部署服务,就可以成功了!

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐