You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose拉取镜像超时求助:无法获取OAuth令牌

Docker Compose构建超时(180秒)问题解决建议

问题概述

执行docker-compose up --build -d构建项目时,拉取官方镜像(如node:18.17、python:3.10)持续触发180秒超时,错误指向auth.docker.io的OAuth令牌请求失败;手动执行docker pull可正常拉取镜像,已尝试禁用IPv6、指定DNS、切换Buildkit、调整登录状态、修改客户端超时环境变量均无效。

解决建议

1. 配置Docker守护进程拉取超时

编辑Docker守护进程配置文件:

  • Windows路径:C:\ProgramData\docker\config\daemon.json
  • Linux路径:/etc/docker/daemon.json

添加以下配置(若文件不存在则新建):

{
  "pull-timeout": 300,
  "max-concurrent-downloads": 1
}
  • pull-timeout:设置镜像拉取超时为300秒(覆盖默认180秒)
  • max-concurrent-downloads:限制并发下载数,减少网络压力

修改后重启Docker服务:

  • Windows:在服务管理器中重启Docker Desktop Service
  • Linux:执行sudo systemctl restart docker

2. 强制使用本地已拉取的镜像

既然手动拉取镜像正常,可让构建过程直接使用本地镜像,避免重复拉取:

  • 修改Dockerfile:无需额外改动,Docker会优先使用本地已存在的镜像
  • 在docker-compose.yml中添加拉取策略:
    services:
      你的服务名:
        build: .
        pull_policy: never  # 强制使用本地镜像,不尝试拉取
    

注意:后续需要更新镜像时,需手动执行docker pull对应镜像。

3. 排查网络代理与防火墙限制

  • 检查Docker代理配置:
    • Windows:打开Docker Desktop设置 → Resources → Proxies,确认是否开启代理,尝试关闭后重试构建
    • Linux:检查daemon.json中的http-proxy/https-proxy配置,临时注释后重启Docker
  • 临时关闭防火墙/安全软件:部分防火墙会拦截Docker对auth.docker.io的HTTPS请求,关闭后测试是否解决超时问题。

4. 切换至国内Docker镜像源

在daemon.json中添加国内镜像加速地址,提升镜像拉取速度:

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

重启Docker后执行构建命令,国内镜像源的网络延迟更低,可有效减少超时概率。

5. 强制禁用Buildkit构建

若之前切换Buildkit的方式未生效,可在构建时显式禁用:

  • 临时命令行指定:
    COMPOSE_DOCKER_CLI_BUILD=0 DOCKER_BUILDKIT=0 docker-compose up --build -d
    
  • 或在docker-compose.yml中配置:
    services:
      你的服务名:
        build:
          context: .
          dockerfile: Dockerfile
          args:
            DOCKER_BUILDKIT: 0
    

内容的提问来源于stack exchange,提问作者samuel guedon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 06:45:09