【docker】docker build 报错

报错信息

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

posted @ 2023-06-09 19:20  aaacarrot  阅读(358)  评论(0编辑  收藏  举报