Docker 基础镜像拉取:构建器代理与 build 参数
传给构建步骤的代理参数并不会配置构建器发出的每一个镜像仓库请求。先定位解析基础镜像的构建器。
在 Dockerfile 的任何包下载步骤执行之前,解析 FROM 时构建就可能失败。构建器的镜像仓库客户端需要自己的一条通路来获取该基础镜像。
| 操作 | 需要该通路的组件 |
|---|---|
| 解析并拉取基础镜像 | 构建器的镜像仓库客户端 |
| RUN 期间的下载 | 执行构建步骤的进程 |
| 运行时调用 API | 运行中的应用 |
定位构建器
默认的 Docker 驱动围绕守护进程展开。其他 Buildx 驱动可以使用独立的 BuildKit 容器、Kubernetes 或远程服务。请在对应 worker 运行的位置配置所选驱动支持的代理机制。
笔记本上的回环代理无法从远程 worker 自动访问,而修改本地守护进程也不会重新配置那个远程构建器。
FROM 之前的 ARG 可以帮助选择镜像引用。但它并不会因此配置镜像仓库客户端的网络通路。之后写入软件包设置或安装证书的 RUN 命令无法补救更早的这次请求。
信任、账户与缓存数据
已批准的 CA 材料必须对验证首次镜像仓库连接的组件可用。镜像仓库凭据与代理凭据授权的是不同主体;登录镜像仓库无法回应代理的 407。
复用缓存镜像数据的 worker 可能不会重复全新 worker 发出的同一网络请求。请比较实际记录的操作。基础镜像访问按预期通路工作后,再在下一个边界诊断后续构建步骤的下载。