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
-
根本原因
-
Docker 配置了阿里云镜像加速器(
2k9xnnig.mirror.aliyuncs.com
) -
但该加速器返回了 403 禁止访问,说明镜像可能已被移除或权限不足
原因解析:我虽然在
/etc/docker/daemon.json
文件中配置了自己的阿里云镜像加速,但是由于镜像可能被移除也导致了去拉取该镜像时失败
-
-
背景情况
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去部署服务,就可以成功了!