首页/云/Docker 容器速查/构建期网络与代理问题
容器排障52 条

构建期网络与代理问题

构建容器不继承宿主代理环境:需要在构建时显式传入代理或使用镜像源,凭据类代理要走 BuildKit secret 避免写进层与历史。

Docker 容器速查云更新于 2026-10-13

构建期网络为什么不走宿主代理

构建容器不继承宿主的代理设置:需要在构建时显式传入代理参数或配置内网镜像源。含凭据的代理要走构建期密钥机制,避免把账号密码写进镜像层与历史记录里。

基本信息

现象构建过程中拉取依赖超时或被拒绝
手段通过构建参数传代理变量,或配置内网镜像源
安全代理含凭据时用密钥机制,不写进构建参数
域名解析可临时指定域名与地址映射
适用范围所有使用构建工具的流水线

典型使用场景

  • 内网环境构建时依赖拉取失败
  • CI 机器需要通过代理访问外部仓库
  • 排查构建阶段与运行阶段网络不一致的问题
  • 避免把代理凭据写进镜像历史
  • 内网私有仓库的域名解析需要临时映射

传入代理与映射

传入代理与映射
docker build \
  --build-arg https_proxy=http://proxy.example.com:3128 \
  --build-arg http_proxy=http://proxy.example.com:3128 \
  -t app:1.0 .
docker build --add-host=registry.example.com:10.0.0.20 -t app:1.0 .   # 临时域名映射

配置要点与风险

关注点做法风险
代理变量构建期显式传入可能写进镜像历史
凭据用密钥机制挂载写进参数会泄露
镜像源配置内网源需与网络策略一致
排除列表配置不走代理的地址漏配会让内网请求走代理
构建参数的值会进入镜像历史可被检出,代理含账号密码时用构建期密钥机制挂载。
宿主能联网不等于构建容器能联网,桥接网络与公司网络策略都可能拦截。
忽略排除列表会让内网仓库的请求被错误地走代理,构建内网地址失败时先查这一项。
构建阶段与运行阶段的网络策略往往不同,两者要分别验证,不要用一个环境的结论套另一个。
把代理配置写进流水线模板并注明适用环境,比每次构建临时拼参数更可靠。

易错点

  • 代理凭据写进构建参数会留在镜像历史里,应该改用构建期密钥机制
  • 宿主能联网不代表构建容器能联网,桥接网络与公司策略都可能拦截
  • 忽略排除列表会让内网仓库请求走代理,构建内网地址失败先查这项
  • 把构建阶段的网络结论直接套到运行阶段,两个环境策略往往不同

数据来源与参考

  • Docker 官方文档:BuildKit secrets 与 build-arg(docs.docker.com/build)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌