报错信息
docker build 的时候,报错了:
[+] Building 0.2s (3/3) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 37B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> ERROR [internal] load metadata for 10.12.10.113:8080/carrot/oraclejdk17-centos:latest 0.1s
------
> [internal] load metadata for 10.12.10.113:8080/carrot/oraclejdk17-centos:latest:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to do request: Head "https://10.12.10.113:8080/v2/carrot/oraclejdk17-centos/manifests/latest": http: server gave HTTP response to HTTPS client
原因分析:
Dockerfile 里面,要先从公司镜像仓库拉取一个基准镜像,
FROM 10.12.10.113:8080/spider/oraclejdk17-centos:latest
然后呢,它默认就走了 https ,
https 就不通,但 http 是可以的。。。
怎样让它走 http, 不要走 https 呢?
解决方案:
在 docker的配置项: insecure-registries 处,把 "10.12.10.113:8080" 添加上来,重启 docker, 就好了。。。。
一些关于 insecure-registries 这个配置项的说明:
insecure-registries 是一个 Docker 配置选项,用于指定 Docker 引擎信任的不安全的私有 Docker 仓库地址(例如使用 HTTP 协议而不是 HTTPS 协议)。若您尝试从此类私有仓库中拉取镜像,Docker 引擎将会提示该仓库不被信任,并阻止拉取相关镜像。
为了解决该问题,您需要进行如下操作:
打开 Docker 引擎配置文件 /etc/docker/daemon.json。
在配置文件中添加 insecure-registries 键值对,其中键名为仓库的 URL 地址,键值为一个布尔值。布尔值为 true 表示 Docker 引擎将信任该仓库地址,允许拉取不安全的镜像;false 表示 Docker 引擎不信任该仓库地址,不允许拉取相关镜像。
下面是一个示例配置:
{
"insecure-registries": [
"http://example.com:5000",
"192.168.1.100:5000"
]
}
上述配置表示:Docker 引擎将信任 URL 地址为 http://example.com:5000 和 IP 地址为 192.168.1.100:5000 的不安全私有 Docker 仓库,允许从这些仓库中拉取镜像。
重新启动 Docker 引擎,使配置生效。
重启 Docker 引擎命令:systemctl restart docker
标签:仓库,引擎,报错,build,镜像,Docker,docker,registries
From: https://www.cnblogs.com/aaacarrot/p/17470099.html