Docker推送大镜像遇网络断开错误,如何实现断点续推?
解决Docker推送大镜像断连续传的问题
升级Docker到23.0及以上版本
Docker从23.0版本开始原生支持镜像推送的断点续传,断连后会自动恢复未完成的层上传。先执行docker version检查当前版本,版本不够就升级到最新稳定版,推送时无需额外操作,Docker会自动处理续传。拆分大镜像为多层小镜像
用多阶段构建把大镜像拆成多个独立小层,比如把依赖安装、应用编译、文件复制分成不同阶段,每次推送只上传变化的小层,就算断连也只需要重传少量数据。调整Docker网络超时配置
在Windows上找到Docker配置文件C:\ProgramData\docker\config\daemon.json(没有就新建),添加以下配置:{ "max-concurrent-uploads": 1, "http-timeout": 300 }把并发上传数设为1降低网络负载,延长HTTP超时时间到300秒适配慢网络。修改后在PowerShell执行
Restart-Service docker重启Docker服务生效。用Skopeo工具辅助推送
Skopeo对网络波动容忍度更高,支持断点续传。安装后执行以下命令推送镜像:skopeo copy docker-daemon:name/image:latest docker://name/image:latest
内容的提问来源于stack exchange,提问作者NicolasSens
相关产品推荐
相关产品推荐

