拉取1GB以上Docker镜像报Retrying及HTTP 206错误如何解决
Docker拉取大于1GB镜像报错
expected HTTP 206 from byte range request解决方案 该报错的核心原因是:Docker拉取大镜像时会发送HTTP Range分段请求,你公司的代理/网关设备改写或拦截了大文件的Range请求,导致镜像仓库返回200状态码而非Docker预期的206状态码,你此前配置的max-concurrent-downloads: 1仅限制并发下载数,不解决单分段的响应错误问题。
可按以下优先级尝试解决:
- 方案1:禁用Docker的Range请求功能(仅支持Docker 23.0及以上版本)
编辑Docker daemon配置文件/etc/docker/daemon.json,新增配置项:
保存后重启Docker服务:"http-disable-range-requests": truesystemctl restart docker,重新执行拉取命令即可。 - 方案2:手动导入镜像到内部环境
找一台不受公司代理限制的设备,执行以下命令导出镜像:
将导出的tar包传输到你的工作设备后,执行导入并推送到公司镜像仓库:docker pull raabf/latex-versions:latest docker save raabf/latex-versions:latest -o latex-image.tar
后续直接拉取公司内部仓库的镜像即可。docker load -i latex-image.tar docker tag raabf/latex-versions:latest [censored-company-address]/raabf/latex-versions docker push [censored-company-address]/raabf/latex-versions - 方案3:调整公司代理配置
联系企业IT运维部门,确认代理/WAF/网关设备是否配置了1GB以上文件的Range请求拦截规则,申请放开你所用Docker客户端的大文件请求限制,或调整代理配置保留Range请求头的正常透传。
内容的提问来源于stack exchange,提问作者Oo'-
相关产品推荐
相关产品推荐

