Docker 部署 SpringBoot 项目拉取 JDK 镜像报错解决方案
Docker 部署 SpringBoot 项目拉取 openjdk:8-jdk-alpine 镜像时因镜像加速器返回 403 错误导致构建失败。根本原因包括镜像源权限不足及官方 Alpine 版本停止维护。通过修改 /etc/docker/daemon.json 配置新的 registry-mirrors 并重启 Docker 服务可解决该问题。

Docker 部署 SpringBoot 项目拉取 openjdk:8-jdk-alpine 镜像时因镜像加速器返回 403 错误导致构建失败。根本原因包括镜像源权限不足及官方 Alpine 版本停止维护。通过修改 /etc/docker/daemon.json 配置新的 registry-mirrors 并重启 Docker 服务可解决该问题。

最近在学习使用 Docker 部署 SpringBoot 项目,在部署过程中出现 Docker 去拉取 JDK 版本的时候报错。
[图片:Docker 构建报错截图]
[+] 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 内容如下:
[图片:Dockerfile 内容截图]
**注意:**生产环境建议使用稳定版本,避免使用自动升级的标签。
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
2k9xnnig.mirror.aliyuncs.com)/etc/docker/daemon.json 文件中配置了自己的阿里云镜像加速,但是由于镜像可能被移除也导致了去拉取该镜像时失败openjdk:8-jdk-alpine 官方已停止维护(OpenJDK 8 的 Alpine 版本已从 Docker Hub 移除)排查发现 /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.cn/",
"https://docker.mirrors.ustc.edu.cn/",
"https://mirror.iscas.ac.cn/",
"https://docker.rainbond.cc/",
"https://jq794zz5.mirror.aliyuncs.com"
]
执行 vim /etc/docker/daemon.json 进入对应文件(如果不存在该文件,会自动创建该文件),输入 i 进入编辑模式,然后复制上述内容到文件中。
[图片:配置文件修改截图]
按 Esc 退出编辑模式,输入 :wq! 强制保存。
systemctl daemon-reloadsystemctl restart dockerdocker info生效结果如下:
[图片:Docker 信息截图]
配置完成后再次部署服务即可成功。
[图片:部署成功截图]

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online