解决docker镜像pull失败的有效

机器环境

本实践将在 Ubuntu 22.04.3LTS 系统上进行测试
docker 版本Docker Engine - Community 24.0.6 ,原则上docker版本无影响
本实践进仅学习研究使用,无作他用途。

背景

曾几何时,docker镜像的拉去会失败,网速会慢,那会我们的通常处理方案是镜像加速。如今,镜像加速已经失效,我们如何解决?
本文将介绍一种解决方案的详细步骤,同时给出其他方案。

方案一:

此方案需要你有一台可以正常访问官方镜像的服务器。

情况一,镜像很小比如 ubuntu:latest , 服务器磁盘够用

# 服务器上备份 , 服务器通过为特殊的私有网络
docker save -o ubuntu.tar ubuntu:latest
# 恢复到目标服务器 , 目标服务器通常为研发环境正常网络
docker load -i ubuntu.tar

情况二,镜像比较大,实力不允许,我的磁盘剩余有 32G

我用第一种方法竟然不能保存 pytorch/pytorch:1.9.0-cuda11.1-cudnn8-devel Compressed Size 7.54 GB

安装 Skopeo

各平台安装方法参考 https://github.com/containers/skopeo/blob/main/install.md

# Ubuntu 20.10 and newer
sudo apt-get -y update
sudo apt-get -y install skopeo# 目前最新版本 1.15.1
skopeo -v
# skopeo version 1.4.1

测试了下目前版本够用,就没折腾安装最新版本了。

保存镜像以及恢复镜像
# 保存镜像
skopeo copy --retry-times=16  docker://pytorch/pytorch:1.9.0-cuda11.1-cudnn8-devel docker-archive:pytorch-1.9.0-cuda11.1-cudnn8-devel.tar:pytorch/pytorch:1.9.0-cuda11.1-cudnn8-devel# 看了下大小,比官网压缩的大了好多好多,怪不得 16*2 = 32G 不够
du -sh pytorch-1.9.0-cuda11.1-cudnn8-devel.tar
16G	pytorch-1.9.0-cuda11.1-cudnn8-devel.tar# 恢复镜像
docker load -i pytorch-1.9.0-cuda11.1-cudnn8-devel.tar
# 或
skopeo copy docker-archive:pytorch-1.9.0-cuda11.1-cudnn8-devel.tar docker-daemon:pytorch/pytorch:1.9.0-cuda11.1-cudnn8-devel

方案二 (由于第一个方案解决了我的问题,没有进行测试)

阿里出品 image-syncer 镜像同步工具 , 参考网站 https://github.com/AliyunContainerService/image-syncer
image-syncer 是一个容器镜像同步工具,可用来进行多对多的镜像仓库同步,支持目前绝大多数主流的 docker 镜像仓库服务

image-syncer

image-syncer 是一个容器镜像同步工具,可用来进行多对多的镜像仓库同步,支持目前绝大多数主流的 docker 镜像仓库服务

Features

  • 支持多对多镜像仓库同步
  • 支持基于 Docker Registry V2 搭建的镜像仓库服务 (如 Docker Hub、 Quay、 阿里云镜像服务 ACR、 Harbor 等)
  • 同步过程只经过内存和网络,不依赖磁盘存储,同步速度快
  • 自动增量同步, 自动忽略已同步且不需要修改的镜像
  • 支持镜像层级别的并发同步,可以通过配置文件调整并发数(可以理解为同一时间在同步的镜像层数量上限)
  • 自动重试失败的同步任务,可以解决大部分镜像同步中的偶发问题(限流、网络抖动),支持重试次数配置
  • 简单轻量,不依赖 docker 以及其他程序

其他方案

  • 用github的workflow来同步镜像到私有的镜像库,比如阿里云;这个可以解决一些小镜像,大的镜像会导致太多问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/37138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第五十三天| 739. 每日温度、 496.下一个更大元素 I、503.下一个更大元素II

LeetCode 739. 每日温度 题目链接:https://leetcode.cn/problems/daily-temperatures/description/ 文章链接:https://programmercarl.com/0739.%E6%AF%8F%E6%97%A5%E6%B8%A9%E5%BA%A6.html 思路 * 单调栈的本质是空间换时间,因为在遍历的过…

【论文阅读】transformer及其变体

写在前面: transformer模型已经是老生常谈的一个东西,以transformer为基础出现了很多变体和文章,Informer、autoformer、itransformer等等都是顶刊顶会。一提到transformer自然就是注意力机制,变体更是数不胜数,一提到…

【目标检测】DN-DETR

一、引言 论文: DN-DETR: Accelerate DETR Training by Introducing Query DeNoising 作者: IDEA 代码: DN-DETR 注意: 该算法是在DAB-DETR基础上的改进,在学习该算法前,建议掌握DETR、DAB-DETR等相关知识…

TCP和UDP的区别以及应用场景

TCP(传输控制协议)和UDP(用户数据报协议)是两种不同的传输层协议 区别 TCP是面向连接的,UDP是无连接的; TCP是可靠的,UDP是不可靠的; TCP是面向字节流的,UDP是面向数据…

如何高效配置与使用Pip换源

目录 1. Pip源的基本概念 1.1 常见的国内镜像源 2. 临时换源 2.1 使用命令行参数指定镜像源 2.2 安装多个包时指定镜像源 3. 永久换源 3.1 修改用户级配置文件 3.1.1 创建和编辑配置文件 3.2 修改全局配置文件 3.2.1 创建和编辑全局配置文件 4. 验证换源配置 5. 切…

VMamba: Visual State Space Model论文笔记

文章目录 VMamba: Visual State Space Model摘要引言相关工作Preliminaries方法网络结构2D-Selective-Scan for Vision Data(SS2D) VMamba: Visual State Space Model 论文地址: https://arxiv.org/abs/2401.10166 代码地址: https://github.com/MzeroMiko/VMamba 摘要 卷积神…

防火墙共性检测技术

防火墙共性检测技术 防火墙共性检测技术是指防火墙在监控和控制网络流量时,共同采用的一些检测和过滤方法。无论是哪种类型的防火墙,这些技术都可以用于识别和阻止恶意流量,确保网络安全。以下是防火墙共性检测技术的详细介绍,包…

axios的基本使用和vue脚手架自带的跨域问题解决

axios的基本使用和vue脚手架自带的跨域问题解决 1. axios 1.1 导入axios npm i axios1.2 创建serve1.js serve1.js const express require(express) const app express()app.use((request,response,next)>{console.log(有人请求服务器1了);console.log(请求来自于,re…

go Channel 原理 (一)

Channel 设计原理 不要通过共享内存的方式进行通信,而是应该通过通信的方式共享内存。 在主流编程语言中,多个线程传递数据的方式一般都是共享内存。 Go 可以使用共享内存加互斥锁进行通信,同时也提供了一种不同的并发模型,即通…

npm ci vs npm i

npm ci vs npm i 几个关键区别:该选择哪个? 通过 npm ci 和 npm i 两个命令,都可安装项目的依赖。那么这两个命令有什么区别呢? 几个关键区别: 目的和用途: npm ci :根据项目中的 package-lock…

AI奏响未来乐章:音乐界的革命性变革

AI在创造还是毁掉音乐 引言 随着科技的飞速发展,人工智能(AI)正在逐渐渗透到我们生活的每一个角落,音乐领域也不例外。AI技术的引入,不仅为音乐创作、教育、体验带来了革命性的变革,更为整个音乐产业注入了…

顺序表应用——通讯录

在本篇之前的顺序表专题我们已经学习的顺序表的实现,了解了如何实现顺序表的插入和删除等功能,那么在本篇当中就要学习基于顺序表来实现通讯录,在通讯录当中能实现联系人的增、删、查改等功能,接下来就让我们一起来实现通讯录吧&a…

grpc学习golang版( 五、多proto文件示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件2.1 公共proto文件2.2 语音唤醒proto文…

解决Vue3项目中跨域问题的步骤

决Vue3项目中跨域问题的步骤可以按照以下方式清晰地分点表示和归纳: 1. 使用代理服务器(Proxy) 步骤: 在Vue项目的根目录下找到或创建vue.config.js文件。在vue.config.js中配置devServer的proxy选项。设定需要代理的接口前缀&a…

基于局域网下的服务器连接、文件传输以及内网穿透教程 | 服务器连接ssh | 服务器文件传输scp | 内网穿透frp | 研究生入学必备 | 深度学习必备

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 📌本篇博客分享的是基于局域网下的服务器连接🔗、文件传输以及内网穿透教程,内容非常完备✨,涵盖了在服务器上做深度学…

树莓派3B读写EEPROM芯片AT24C256

AT24C256是一个Atmel公司的EEPROM存储芯片,容量是256K个bit(也就是32K字节),I2C接口,而树莓派正好有I2C接口,如下图蓝框中的4个IO口, 把AT24C256和这4个口接在一起,这样硬件就准备好…

Django 页面展示模型创建表的数据

1,添加视图函数 Test/app8/urls.py from django.shortcuts import render from .models import Userdef create_user(request):if request.method POST:username request.POST.get(username)email request.POST.get(email)# ... 获取其他字段的值# 创建用户实例…

【Python学习篇】Python实验小练习——异常处理(十三)

个人名片: 🎓作者简介:嵌入式领域优质创作者🌐个人主页:妄北y 📞个人QQ:2061314755 💌个人邮箱:[mailto:2061314755qq.com] 📱个人微信:Vir2025WB…

【教程】5分钟直接了解随机森林模型

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、什么是随机森林模型1.1.随机森林模型介绍1.2.为什么随机森林要用多棵决策树 二、怎么训练一个随机森林模型2.1.训练一个随机森林模型 随机森林模型是机器学习中常用的模型之一,它是决策树模型的一…

Node.js全栈指南:静态资源服务器

上一章【认识 MIME 和 HTTP】。 我们认识和了解了 MIME 的概念和作用,也简单地学习了通过浏览器控制台查看请求和返回的用法。 通过对不同的 HTML、CSS、JS 文件进行判断,设置不同的 MIME 值,得以让我们的浏览器正正确地接收和显示不同的文…