构建Dockerfile时出现LLB定义创建失败及证书验证错误
Docker构建x509证书授权错误排查方案
问题现象
构建Docker镜像时触发以下错误:
------ => ERROR [internal] load metadata for docker.io/bitnami/minideb:stretch 2.5s => [auth] bitnami/minideb:pull token for registry-1.docker.io 0.0s [internal] load metadata for docker.io/bitnami/minideb:stretch: failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to authorize: rpc error: code = Unknown desc = failed to fetch oauth token: Get "https://auth.docker.io/token?scope=repository%3Abitnami%2Fminideb%3Apull&service=registry.docker.io": x509: certificate signed by unknown authority
使用的构建命令:
docker build -f Dockerfile .
Dockerfile开头内容:
FROM bitnami/minideb:stretch RUN apt-get –no-install-recommends update && apt-get –no-install-recommends install -y openssh-client openssl libexpat1 && sh /tmp/nso --system-install --non-interactive
已尝试无效操作
- 成功执行
docker login、docker pull hello-world、docker pull docker.io/bitnami/minideb:stretch命令; - 重启Mac上的Docker Desktop;
- 将Docker Desktop重置为出厂设置后重启。
可行解决思路
1. 对齐Docker与终端的代理配置
Docker Desktop的代理设置可能和终端代理不一致,导致构建时证书验证失败:
- 打开Docker Desktop偏好设置,进入「Resources」→「Proxies」;
- 确认代理配置与终端使用的一致,或临时关闭代理后重新构建。
2. 添加CA证书到Docker信任目录
若为公司内网自签名证书导致验证失败,需将CA证书放入Docker信任目录:
- 在Mac上,创建目录
/etc/docker/certs.d/docker.io/,将CA证书文件放入该目录; - 重启Docker Desktop后重新执行构建命令。
3. 临时禁用证书验证(仅限测试环境)
注意:此方法存在安全风险,仅用于临时测试
- 临时构建命令:
docker build --network host -f Dockerfile .
- 或修改
~/.docker/daemon.json文件,添加以下内容后重启Docker:
{ "insecure-registries": ["docker.io"] }
4. 修正Dockerfile命令格式
提供的Dockerfile中RUN命令存在格式问题(全角破折号–、换行连接符缺失),建议修正为:
FROM bitnami/minideb:stretch RUN apt-get --no-install-recommends update \ && apt-get --no-install-recommends install -y openssh-client openssl libexpat1 \ && sh /tmp/nso --system-install --non-interactive
内容的提问来源于stack exchange,提问作者insta girl
相关产品推荐
相关产品推荐

