> 技术文档 > ERROR [internal] load metadata for docker.io/library/openjdk:8-jdk-alpine - Docker部署项目报错,拉取jdk镜像报错

ERROR [internal] load metadata for docker.io/library/openjdk:8-jdk-alpine - Docker部署项目报错,拉取jdk镜像报错


Docker部署项目报错

1.问题概述

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

在这里插入图片描述

1.1 具体错误信息:

[+] Building 21.2s (2/2) FINISHEDdocker: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去部署服务,就可以成功了!

在这里插入图片描述