docker引擎备份及解决拉取失败的问题
总结一下本文,docker引擎不是越多越好,此外阿里云的容器引擎加速可适用大多数情况。
docker引擎备份
仅使用阿里云
docker引擎备份,唯一使用的镜像地址是我的阿里云docker镜像加速地址,效果好(注意下面的阿里云镜像加速地址要替换成你自己的)。地址参考:阿里云容器镜像服务。
{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://youraliyuncode.mirror.aliyuncs.com"]
}
其它docker引擎备份
额外的镜像地址,某些地址会引起拉取镜像失败。
"https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com","https://cr.console.aliyun.com/","https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://docker.rainbond.cc","https://alzgoonw.mirror.aliyuncs.com"
问题的由来
我尝试在dify中启用searXNG,需要执行命令:
docker run --rm -d -p 8081:8080 -v "${PWD}/api/core/tools/provider/builtin/searxng/docker:/etc/searxng" searxng/searxng
命令解读
这条docker run
命令是用来在Docker容器中启动一个服务(在这个情况下是SearXNG),并且配置了多个选项来控制容器的行为。下面是对每个参数的详细解读:
-
docker run
: 这是用于启动一个新的容器的Docker命令。 -
--rm
: 当容器退出时,自动删除该容器。这有助于保持系统的整洁,避免留下停止但未删除的容器。 -
-d
: 以分离模式(后台运行)启动容器。这意味着容器将在后台运行,而不是占用当前终端。 -
-p 8081:8080
: 将主机的端口8081映射到容器内的端口8080。这意味着你可以通过访问主机上的8081端口来与容器内部运行的服务(监听在8080端口上)进行通信。 -
-v "${PWD}/api/core/tools/provider/builtin/searxng/docker:/etc/searxng"
: 这是一个卷挂载选项,将主机上的目录${PWD}/api/core/tools/provider/builtin/searxng/docker
挂载到容器内的/etc/searxng
路径。这里${PWD}
代表当前工作目录的环境变量值,使得无论从哪个目录执行此命令,都会使用当前目录作为起点来寻找指定的本地路径。这个选项通常用于让容器能够访问主机文件系统中的特定配置或数据文件。 -
searxng/searxng
: 指定了要使用的镜像名称。Docker会尝试从Docker Hub下载名为searxng/searxng
的最新版本镜像(如果你本地没有的话),然后基于这个镜像创建并启动新的容器。
总结来说,这条命令的作用是以分离模式在后台启动一个SearXNG服务的容器,它将主机的8081端口请求转发给容器内的8080端口,并且将当前目录下的api/core/tools/provider/builtin/searxng/docker
目录挂载到容器内的/etc/searxng
目录下,以便于配置和数据共享。同时,当容器停止时,它会自动被移除。
执行效果
可惜执行起来会报错:
Unable to find image 'searxng/searxng:latest' locally
docker: Error response from daemon: failed commit on ref "unknown-sha256:391a2ad1486f55c46728d4d466cad83fd3f44627222bd555c3c83bf2e1a39948": commit failed: "unknown-sha256:391a2ad1486f55c46728d4d466cad83fd3f44627222bd555c3c83bf2e1a39948" failed size validation: 7616 != 7293: failed precondition.
See 'docker run --help'.
报错解读
这个报错信息表明在尝试运行searxng/searxng:latest
镜像时,Docker遇到了几个问题:
-
找不到本地镜像:首先,错误信息中的第一行“Unable to find image ‘searxng/searxng:latest’ locally”表示你的系统中没有名为
searxng/searxng:latest
的Docker镜像。这意味着Docker将尝试从Docker Hub下载该镜像。 -
下载或验证失败:接下来的部分指出,在尝试从Docker Hub下载该镜像或将下载的数据提交到本地存储库时发生了错误。“failed commit on ref…”这部分说明了具体的错误发生在尝试提交一个引用(即下载的镜像部分)到本地仓库的过程中。这里提到的
unknown-sha256:391a2ad1486f55c46728d4d466cad83fd3f44627222bd555c3c83bf2e1a39948
是一个SHA-256哈希值,用于唯一标识下载的数据块。 -
校验和验证失败:更具体地,“failed size validation: 7616 != 7293”指出下载的数据块未能通过大小验证检查。这里的数字分别代表了实际下载的数据大小和预期的数据大小,它们不匹配,导致了“failed precondition”的错误。这种情况可能是因为网络问题、文件损坏或者Docker Hub上的镜像本身存在问题。
问题的解决
解决方案
-
尝试重新拉取镜像:首先尝试手动删除并重新拉取镜像,这可以解决由于网络问题或文件损坏导致的问题。
shell docker rmi searxng/searxng:latest docker pull searxng/searxng:latest
-
检查是否有特定版本标签可用:有时
latest
标签可能会有问题。你可以访问Docker Hub上的SearXNG页面查看并选择一个特定版本的标签来代替latest
使用。 -
确保有足够的磁盘空间:确保你的系统上有足够的磁盘空间来下载和存储新的Docker镜像。
-
更新Docker:确保你正在使用的Docker是最新版本,因为旧版本可能存在已知的问题或bug。
如果上述步骤无法解决问题,可能是Docker Hub上的searxng/searxng:latest
镜像存在一些问题。在这种情况下,建议关注相关项目的公告或联系维护者获取更多信息。同时,也可以考虑在社区论坛或项目GitHub问题页面上寻求帮助。
尝试手动拉取
即使尝试手动拉取,也会报错:
所以问题明白了,本地没有镜像,自动执行拉取镜像时失败,理由是docker hub里最新镜像验证失败。
网络方法
网上给的方法是:
1、增加docker引擎镜像地址;
2、指定镜像版本。
我都试了,都没用。于是我想,是不是docker引擎镜像地址出错了,比如有一个有问题的地址在捣乱。。。于是我尝试仅保留我的阿里云镜像加速地址,那个相对可靠。
最终解决办法
果然,在将阿里云容器镜像加速地址作为唯一docker引擎地址后,镜像拉取非常顺利,问题解决。
相关文章:

docker引擎备份及解决拉取失败的问题
总结一下本文,docker引擎不是越多越好,此外阿里云的容器引擎加速可适用大多数情况。 docker引擎备份 仅使用阿里云 docker引擎备份,唯一使用的镜像地址是我的阿里云docker镜像加速地址,效果好(注意下面的阿里云镜像加…...

Django项目实战
1、安装django 查看包安装的位置 pip镜像源 镜像源名称镜像地址清华源https://pypi.tuna.tsinghua.edu.cn/simple阿里云https://mirrors.aliyun.com/pypi/simple腾讯云https://mirrors.cloud.tencent.com/pypi/simple华为云https://repo.huaweicloud.co…...

【ThreeJS Basics 1-6】Camera
文章目录 Camera 相机PerspectiveCamera 透视相机正交相机用鼠标控制相机大幅度转动(可以看到后面) 控制组件FlyControls 飞行组件控制FirstPersonControls 第一人称控制PointerLockControls 指针锁定控制OrbitControls 轨道控制TrackballControls 轨迹球…...

SpringBoot-模拟SSE对话交互
SpringBoot-模拟SSE对话交互 后端使用SSE进行会话,前端使用Html模拟大模型的问答交互->【前端】【后端】 1-学习目的 本项目代码仓库:https://gitee.com/enzoism/springboot_sse 1-核心知识点 1)什么是SSE协议->客户端发起一次请求&am…...

删除链表的倒数第N个节点 力扣19
一、题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例 3&a…...

IvorySQL v4 逻辑复制槽同步功能解析:高可用场景下的数据连续性保障
功能简介 IvorySQL v4 基于 PostgreSQL 17,引入了逻辑复制槽同步至热备份数据库的功能。这一改进有效解决了旧版本中主数据库与备份数据库切换后逻辑复制中断的问题。对于那些追求数据高可用性和业务连续性的数据库来说,这无疑是一个重大的利好消息。它…...
vxe-table开启表尾和el-collapse-transition不兼容,动画卡顿
调用控制台 发现是el-collapse-transition内置的计算高度函数计算的高度总是会高一点 直接放弃使用el-collapse-transition 使用下面的div包裹住vxe-table 我的table是渲染出来的会有多个 <el-button click"group.messShow !group.messShow" type"text&q…...

康谋分享 | 3DGS:革新自动驾驶仿真场景重建的关键技术
随着自动驾驶技术的迅猛发展,构建高保真、动态的仿真场景成为了行业的迫切需求。传统的三维重建方法在处理复杂场景时常常面临效率和精度的挑战。在此背景下,3D高斯点阵渲染(3DGS)技术应运而生,成为自动驾驶仿真场景重…...

golang学习笔记——go语言安装及系统环境变量设置
文章目录 go语言安装go envgo getgoproxy测试安装 Go 插件安装 Go 插件依赖工具参考资料用户环境变量和系统环境变量用户环境变量系统环境变量示例设置环境变量的步骤设置用户环境变量设置系统环境变量 验证环境变量总结 2024年最火的5大Go框架1. Gin:高并发接口的“…...

Redis|集群 Cluster
文章目录 是什么能干嘛集群算法-分片-槽位slotredis集群的槽位slotredis集群的分片分片槽位的优势slot槽位映射——业界的3种解决方案小厂:哈希取余分区中厂:一致性哈希算法分区大厂:哈希槽分区 面试题:为什么 Redis 集群的最大槽…...

解锁MacOS开发:环境配置与应用开发全攻略
✨✨✨这里是小韩学长yyds的BLOG(喜欢作者的点个关注吧) ✨✨✨想要了解更多内容可以访问我的主页 小韩学长yyds-CSDN博客 目录 引言 一、MacOS 开发环境配置 (一)必备工具安装 (二)集成开发环境(IDE)选…...
如何通过卷积神经网络(CNN)有效地提取图像的局部特征,并在CIFAR-10数据集上实现高精度的分类?
目录 1. CNN 提取图像局部特征的原理 2. 在 CIFAR - 10 数据集上实现高精度分类的步骤 2.1 数据准备 2.2 构建 CNN 模型 2.3 定义损失函数和优化器 2.4 训练模型 2.5 测试模型 3. 提高分类精度的技巧 卷积神经网络(Convolutional Neural Network, CNN&#…...

监听 RabbitMQ 延时交换机的消息数、OpenFeign 路径参数传入斜杠无法正确转义
背景 【MQ】一套为海量消息和高并发热点消息,提供高可用精准延时服务的解决方案 我现在有一个需求,就是监听 RabbitMQ 一个延时交换机的消息数,而 RabbitTemplate 是不存在对应的方法来获取的。 而我们在 RabbitMQ 的控制台却可以发现延时交…...
希音(Shein)前端开发面试题集锦和参考答案
用 Node 写过什么工具或 npm 包 在实际开发中,使用 Node 编写过多种实用工具和 npm 包。 自动化构建工具 开发了一个简单的自动化构建工具,用于处理前端项目的资源压缩和合并。在前端项目中,为了优化性能,需要对 CSS 和 JavaScript 文件进行压缩,减少文件体积,同时将多个…...

python全栈-Linux基础
python全栈-Linux基础 文章目录 Linux安装/配置网络配置配置Linux远程登录配置虚拟机内部ip配置真机的ip安装XShell和Xftp目录结构用户和用户组用户管理添加用户useradd查看用户id修改用户usermod (选项)(参数)用户密码设置passed (选项)(参数)删除用户userdel [选项] 用户名 用…...

DeepSeek R1助力,腾讯AI代码助手解锁音乐创作新
目录 1. DeepSeekR1模型简介2. 歌词创作流程2.1 准备工作2.2 歌词生成技巧 3. 音乐制作环节3.1 主流AI音乐生成平台 4. 歌曲欣赏5. 总结展望 1. DeepSeekR1模型简介 腾讯AI代码助手最新推出的DeepSeekR1模型不仅在代码生成方面表现出色,其强大的自然语言处理能力也…...
Git安装与配置
安装部分: Windows:下载官网安装包,双击安装,路径选择(注意是否修改),安装选项(是否勾选某些选项,如提到安装时更换编辑器为Nano)。Linux:通过包管…...

【Linux】自定协议和序列化与反序列化
目录 一、序列化与反序列化概念 二、自定协议实现一个加法网络计算器 (一)TCP如何保证接收方的接收到数据是完整性呢? (二)自定义协议 (三)自定义协议的实现 1、基础类 2、序列化与反序列…...
C++基础系列【19】运算符重载
博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇…...

Python-04BeautifulSoup网络爬虫
2025-03-04-BeautifulSoup网络爬虫 记录BeautifulSoup网络爬虫的核心知识点 文章目录 2025-03-04-BeautifulSoup网络爬虫 [toc]1-参考网址2-学习要点3-核心知识点1. 安装2. 导入必要的库3. 发送 HTTP 请求4. 创建 BeautifulSoup 对象5. 解析 HTML 内容5.1 查找标签5.2 根据属性…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
6.9本日总结
一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...
java+webstock
maven依赖 <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.3.5</version></dependency><dependency><groupId>org.apache.tomcat.websocket</groupId&…...

2025 后端自学UNIAPP【项目实战:旅游项目】7、景点详情页面【完结】
1、获取景点详情的请求【my_api.js】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http(/login/getWXSessionKey, {code,avatar}); };//…...