[{"data":1,"prerenderedAt":1181},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fdocker\u002Fbasic\u002Fdocker-mirror-acceleration":158,"\u002Fdocs\u002Fdocker\u002Fbasic\u002Fdocker-mirror-acceleration-description":1146},[4],{"title":5,"path":6,"stem":7,"children":8,"page":36},"Docs","\u002Fdocs","docs",[9,37,45,65,148],{"title":10,"description":11,"icon":12,"path":13,"stem":14,"children":15,"page":36},"Redis","Redis是一个开源的高性能键值存储数据库，它提供了多种数据结构来存储数据，如字符串、哈希、列表、集合、有序集合等。Redis将数据存储在内存中，以提供快速的读写访问速度，并且能够通过异步的方式将数据持久化到磁盘上。它支持复制、Lua脚本、事务处理、不同级别的持久化选项以及多种客户端语言的接口。Redis广泛用于缓存、消息队列、短时数据存储和高性能的应用场景中。","skill-icons:redis-light","\u002Fdocs\u002Fredis","docs\u002F1.redis",[16],{"title":17,"path":18,"stem":19,"children":20,"description":34,"icon":35},"install","\u002Fdocs\u002Fredis\u002Finstall","docs\u002F1.redis\u002F1.install\u002F1.index",[21,24,29],{"title":22,"path":18,"stem":19,"description":23},"Introduction","The powerful Git-based CMS designed specifically for Nuxt developers.",{"title":25,"path":26,"stem":27,"description":28},"Installation","\u002Fdocs\u002Fredis\u002Finstall\u002Finstallation","docs\u002F1.redis\u002F1.install\u002F2.installation","Get started with Nuxt Content v3 in your Nuxt application.",{"title":30,"path":31,"stem":32,"description":33},"Configuration","\u002Fdocs\u002Fredis\u002Finstall\u002Fconfiguration","docs\u002F1.redis\u002F1.install\u002F3.configuration","Nuxt Content is configured with sensible defaults.",null,"icon-park-outline:install",false,{"title":38,"path":39,"stem":40,"children":41,"description":43,"icon":44},"SpringBoot","\u002Fdocs\u002Fspringboot","docs\u002F2.springboot\u002F1.index",[42],{"title":22,"path":39,"stem":40,"description":23},"Spring Boot 是一个基于 Spring 框架的‌开箱即用型 Java 开发框架‌，由 Pivotal 团队于 2014 年推出，旨在彻底简化 Spring 应用的初始搭建、配置和部署流程。其核心理念是 ‌\"约定优于配置\"‌，通过自动化机制减少开发者的样板代码工作，显著提升效率。","simple-icons:springboot",{"title":46,"path":47,"stem":48,"children":49,"description":63,"icon":64},"Rocky Linux","\u002Fdocs\u002Frocky","docs\u002F3.rocky\u002F1.index",[50,53,58],{"title":51,"path":47,"stem":48,"description":52},"1 Rocky Linux 概述","Rocky Linux 是一个开源、免费的企业级 Linux 操作系统。它的核心目标是与 Red Hat Enterprise Linux (RHEL) 100% 完全兼容，可以看作是原本广受欢迎的 CentOS 的“替代者”和“精神继承者.",{"title":54,"path":55,"stem":56,"description":57},"2 VMware安装Rocky Linux","\u002Fdocs\u002Frocky\u002Finstall","docs\u002F3.rocky\u002F2.install","本文主要介绍了VMware Workstation 17.x 虚拟机如何快速安装Rocky Linux 10.x 版本的Linux操作系统。",{"title":59,"path":60,"stem":61,"description":62},"3 Rocky Linux 10安装Docker","\u002Fdocs\u002Frocky\u002Fdocker","docs\u002F3.rocky\u002F3.docker","在 Rocky Linux 10 上安装 Docker 的推荐方式是使用其官方仓库。下面是完整的安装步骤。","Rocky Linux 是一个开源、免费的企业级 Linux 操作系统。它的核心目标是与 Red Hat Enterprise Linux (RHEL) 100% 完全兼容，可以看作是原本广受欢迎的 CentOS 的“替代者”和“精神继承者”","logos:rocky-linux-icon",{"title":66,"description":67,"icon":68,"path":69,"stem":70,"children":71,"page":36},"Docker","Docker是一个开源的应用容器引擎，可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中，然后发布到Docker容器中运行，也可以实现虚拟化。","devicon:docker","\u002Fdocs\u002Fdocker","docs\u002F4.docker",[72,96,111,137],{"title":73,"path":74,"stem":75,"children":76,"description":34,"icon":95},"Docker 基础","\u002Fdocs\u002Fdocker\u002Fbasic","docs\u002F4.docker\u002F1.basic\u002F1.index",[77,80,85,90],{"title":78,"path":74,"stem":75,"description":79},"Docker基础概念","Docker是一个基于Go语言开发并遵从 Apache2.0 协议开源的应用容器引擎，可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中，然后发布到Docker环境中运行，容器彼此隔离，但可以通过特定的通道相互传递信息。保证了在任何环境下运行的应用程序具有相同的行为，这极大地减少了环境差异导致的“在我机器上可以运行”的问题。",{"title":81,"path":82,"stem":83,"description":84},"Docker核心架构","\u002Fdocs\u002Fdocker\u002Fbasic\u002Fdocker-architecture","docs\u002F4.docker\u002F1.basic\u002F2.docker-architecture","Docker 采用 C\u002FS 架构，客户端通过 REST API 将指令下达给常驻后台的守护进程（dockerd）；守护进程则依靠 Linux 内核的 Namespace 实现环境隔离、Cgroups 实现资源配额，并利用 UnionFS 的分层存储机制构建镜像和容器，从而在单台宿主机上实现了轻量级、高性能的应用沙箱。",{"title":86,"path":87,"stem":88,"description":89},"Docker镜像加速","\u002Fdocs\u002Fdocker\u002Fbasic\u002Fdocker-mirror-acceleration","docs\u002F4.docker\u002F1.basic\u002F3.docker-mirror-acceleration","Docker安装完成后默认的官方镜像仓库是[Docker Hub‌](https:\u002F\u002Fhub.docker.com\u002F){target=blank}，这是Docker官方维护的公共镜像注册中心。但对于国内Docker用户而言，在没有魔法的情况下是无法访问Docker Hub网站的，也无法从Docker Hub仓库拉取镜像。目前国内常用的2种方法：**Docker镜像加速源** 和 **配置Docker代理**。",{"title":91,"path":92,"stem":93,"description":94},"Docker Context","\u002Fdocs\u002Fdocker\u002Fbasic\u002Fdocker-context","docs\u002F4.docker\u002F1.basic\u002F4.docker-context","Docker Context 是 Docker 19.03 版本引入的一项功能，它为 Docker 客户端（CLI）提供了一套标准化的“连接配置”机制。通过 Context，你可以轻松地在本地开发环境、远程服务器、云服务等多个 Docker 环境之间快速切换，极大地提升了多环境管理的效率。","mdi:information-box-outline",{"title":97,"description":34,"icon":35,"path":98,"stem":99,"children":100,"page":36},"Docker 安装","\u002Fdocs\u002Fdocker\u002Finstall","docs\u002F4.docker\u002F2.install",[101,106],{"title":102,"path":103,"stem":104,"description":105},"CentOS安装Docker","\u002Fdocs\u002Fdocker\u002Finstall\u002Fcentos-docker-install","docs\u002F4.docker\u002F2.install\u002F1.centos-docker-install","在 CentOS 上安装 Docker，准确的说是安装 Docker Engine, 本文主要介绍如何在CentOS上安装Docker。",{"title":107,"path":108,"stem":109,"description":110},"Rocky安装Docker","\u002Fdocs\u002Fdocker\u002Finstall\u002Frocky-docker-install","docs\u002F4.docker\u002F2.install\u002F2.rocky-docker-install","在 Rocky Linux 10 上安装 Docker 和 Centos 安装 Docker 步骤基本类似的，推荐方式是使用其官方仓库。下面是完整的安装步骤。",{"title":112,"description":34,"icon":113,"path":114,"stem":115,"children":116,"page":36},"Docker 使用","fluent:data-usage-24-regular","\u002Fdocs\u002Fdocker\u002Fusage","docs\u002F4.docker\u002F3.usage",[117,122,127,132],{"title":118,"path":119,"stem":120,"description":121},"Docker持久化","\u002Fdocs\u002Fdocker\u002Fusage\u002Fdocker-persistence","docs\u002F4.docker\u002F3.usage\u002F1.docker-persistence","在 Docker 中，容器默认是无状态的，容器删除后内部数据会直接丢失，Docker 官方提供了三类核心数据持久化方案，分别适配不同的使用场景：卷（Volumes）、绑定挂载（Bind Mounts） 和 tmpfs 挂载。",{"title":123,"path":124,"stem":125,"description":126},"Docker容器自启动","\u002Fdocs\u002Fdocker\u002Fusage\u002Fcontainer-restart","docs\u002F4.docker\u002F3.usage\u002F2.container-restart","Docker容器自启动策略是指Docker服务运行期间，特定容器在退出、崩溃或宿主机重启后，容器是否自动重新运行。",{"title":128,"path":129,"stem":130,"description":131},"Docker Dockerfile","\u002Fdocs\u002Fdocker\u002Fusage\u002Fdocker-dockerfile","docs\u002F4.docker\u002F3.usage\u002F3.docker-dockerfile","本文旨在探讨Dockerfile的功能定位与指令体系，并在此基础上，给出基于Dockerfile实现自定义镜像构建的具体方法。",{"title":133,"path":134,"stem":135,"description":136},"连接远程Docker服务","\u002Fdocs\u002Fdocker\u002Fusage\u002Fconnect-remote-docker","docs\u002F4.docker\u002F3.usage\u002F4.connect-remote-docker","在日常开发或测试中，我们经常需要在本地开发环境中直接操作远程 Docker 服务——执行镜像构建、容器启停等命令，效果与直接在远程服务器上操作完全一致。这能极大提升调试与部署效率，同时避免频繁登录远程服务器的繁琐。",{"title":138,"description":34,"icon":139,"path":140,"stem":141,"children":142,"page":36},"Docker 参考手册","material-symbols-light:docs-outline","\u002Fdocs\u002Fdocker\u002Fresources","docs\u002F4.docker\u002F5.resources",[143],{"title":144,"path":145,"stem":146,"description":147},"Docker 命令大全","\u002Fdocs\u002Fdocker\u002Fresources\u002Fdocker-command","docs\u002F4.docker\u002F5.resources\u002F1.docker-command","下面介绍Docker常见的基础命令。",{"title":149,"path":150,"stem":151,"children":152,"description":156,"icon":157},"Linux","\u002Fdocs\u002Flinux","docs\u002F5.Linux\u002F1.index",[153],{"title":154,"path":150,"stem":151,"description":155},"1.dnf和yum区别","一句话概括：dnf 是 yum 的下一代升级版，你可以把 dnf 看作\"优化重构后的yum\"","Linux是免费开源、多用户多任务、高稳定性与安全性、支持多平台硬件的Unix操作系统。文档整理了Linux相关的命令和常见问题处理方法。","logos:linux-tux",{"id":159,"title":86,"body":160,"createDate":1136,"description":89,"extension":1137,"links":34,"meta":1138,"navigation":1139,"path":87,"readingTime":1140,"seo":1141,"sitemap":1142,"stem":88,"updateDate":1143,"wordCount":1144,"__hash__":1145},"docs\u002Fdocs\u002F4.docker\u002F1.basic\u002F3.docker-mirror-acceleration.md",{"type":161,"value":162,"toc":1129},"minimark",[163,168,191,201,209,212,216,219,228,239,317,320,323,326,329,416,422,425,433,440,447,451,461,486,492,577,582,609,614,732,735,751,755,758,763,769,772,784,790,793,796,803,830,837,894,901,923,926,940,945,948,956,1047,1052,1074,1093,1097,1100,1125],[164,165,167],"h2",{"id":166},"_1-默认镜像仓库","1. 默认镜像仓库",[169,170,171,179,185],"ul",{},[172,173,174,178],"li",{},[175,176,177],"strong",{},"‌官方默认地址‌："," Docker官方默认镜像仓库Docker Hub的底层拉取服务地址为 registry-1.docker.io，这是Docker客户端默认发起镜像拉取请求的目标地址。registry-1.docker.io 是 Docker Hub 的底层注册表（Registry）地址，用于存储和管理 Docker 镜像。在 Docker 中，一个注册表（Registry）是存储 Docker 镜像的地方，而 registry-1.docker.io 是 Docker Hub 的注册表地址之一。",[172,180,181,184],{},[175,182,183],{},"‌镜像资源规模‌："," 托管超过10万个公开镜像，包含MongoDB、Nginx、Apache、Ubuntu、MySQL等大量官方认证镜像，部分热门镜像的累计下载量已超10亿次。",[172,186,187,190],{},[175,188,189],{},"核心功能‌："," 除了公开镜像仓库，还支持私有镜像托管、与GitHub\u002FBitbucket集成实现自动化构建、Webhook触发自动化测试与通知等开发流程联动能力。",[192,193,194,200],"p",{},[195,196,197],"a",{"href":197,"rel":198},"https:\u002F\u002Fregistry-1.docker.io",[199],"nofollow"," 是 Docker 官方镜像仓库的‌入口域名‌，也是你在 daemon.json 中配置镜像加速或查看默认仓库时看到的地址。它本质上是一个指向 Docker Hub 后端服务的统一入口，用于重定向客户端到正确的 API 服务。",[192,202,203,204,208],{},"而 ",[195,205,206],{"href":206,"rel":207},"https:\u002F\u002Fregistry-1.docker.io\u002Fv2\u002F",[199]," 是该域名下具体的 ‌Docker Registry API v2 接口路径‌。Docker 客户端在拉取镜像时，会先访问这个 \u002Fv2\u002F 路径来获取镜像的元数据（如标签列表、层信息等），再通过 \u002Fv2\u002F\u003C镜像名>\u002Fmanifests\u002F\u003C标签> 等子路径完成实际的镜像下载。这是 Docker 分层镜像协议的标准接口，所有符合 OCI 规范的镜像仓库都必须实现这个 API。",[192,210,211],{},"普通用户执行 docker pull nginx 这类命令时，Docker客户端会自动先向 registry-1.docker.io\u002Fv2 发起探测请求，验证V2协议可用性，确认正常后才会走V2协议完成后续镜像拉取流程；早年Docker还存在V1版本Registry协议时，客户端会在V2接口访问失败后，自动回退到不带\u002Fv2后缀的旧版V1接口完成兼容操作，现在V1协议早已全面停用，日常使用中几乎所有请求都会直接指向带\u002Fv2后缀的V2接口。",[164,213,215],{"id":214},"_2-国内镜像加速源","2. 国内镜像加速源",[192,217,218],{},"2024年6月起，国内主流Docker镜像源（如中科大、阿里云、腾讯云、华为云）陆续关闭，原本公开的镜像加速域名均无法访问，导致开发者无法高效拉取镜像。项目构建、测试和部署流程被迫中断，企业需投入额外资源搭建私有镜像仓库或寻找替代方案，显著增加运维成本。",[192,220,221,222,227],{},"目前国内有很多Docker镜像源都已失效，部分还存在",[223,224,226],"code",{"color":225},"primary","TLS 证书不匹配","问题。Docker在握手阶段会验证镜像源证书合法性，如果Docker发现TLS 证书不匹配，就会在日志里抛出 Host doesn't match的警告，导致镜像源无法加速。",[192,229,230,231,234,235,238],{},"这里为你整理",[223,232,233],{},"Docker配置镜像源","、",[223,236,237],{},"直接指定镜像仓库前缀","两种方式的完整对比：",[240,241,242,258],"table",{},[243,244,245],"thead",{},[246,247,248,252,255],"tr",{},[249,250,251],"th",{},"对比维度",[249,253,254],{},"配置全局镜像源（registry-mirrors）",[249,256,257],{},"直接使用镜像仓库前缀拉取",[259,260,261,273,284,295,306],"tbody",{},[246,262,263,267,270],{},[264,265,266],"td",{},"‌底层核心逻辑‌",[264,268,269],{},"在Docker守护进程层面设置全局缓存代理，执行不带前缀的镜像拉取命令时，Docker会自动优先向配置的加速站点发起请求，站点作为Docker Hub的反向缓存节点返回预缓存的镜像层，全程对用户无感知。",[264,271,272],{},"手动指定完整的目标仓库地址，Docker直接和指定的独立镜像仓库建立通信，完全跳过默认仓库和全局镜像源的代理逻辑，直接从目标地址拉取镜像。",[246,274,275,278,281],{},[264,276,277],{},"‌拉取命令写法‌",[264,279,280],{},"仅需输入短格式镜像名，例如 docker pull redis，Docker会自动补全为 \u003C镜像源地址>\u002Flibrary\u002Fredis，无需手动输入长路径。",[264,282,283],{},"必须手动补全完整仓库路径，例如 docker pull docker.1ms.run\u002Flibrary\u002Fredis，Docker严格按照指定地址发起请求，不会自动补全默认的library命名空间。",[246,285,286,289,292],{},[264,287,288],{},"‌权限支持‌",[264,290,291],{},"绝大多数公共镜像源是只读缓存节点，仅支持镜像拉取，不允许执行docker push上传镜像，避免公共资源被滥用污染。",[264,293,294],{},"提前通过docker login完成目标仓库身份认证后，可完整支持镜像拉取、标记、推送全流程操作，适配私有仓库、自定义镜像仓库的全场景需求。",[246,296,297,300,303],{},[264,298,299],{},"‌异常容错逻辑‌",[264,301,302],{},"内置自动故障重试机制，当前镜像源超时、证书校验失败时，会自动切换到下一个配置好的镜像源尝试拉取，容错性更强。",[264,304,305],{},"没有自动重试切换逻辑，一旦目标仓库出现网络超时、证书不匹配问题，拉取会直接中断报错，不会自动尝试其他备用节点。",[246,307,308,311,314],{},[264,309,310],{},"‌适用场景‌",[264,312,313],{},"适合日常开发通用场景，一次配置全局生效，所有不带前缀的镜像拉取都能自动享受加速效果，大幅降低国内访问Docker Hub的网络延迟。",[264,315,316],{},"适合拉取私有仓库镜像、特定定制镜像的场景，比如企业内部Harbor仓库、第三方专属镜像仓库，必须手动指定完整地址才能精准访问目标资源。",[192,318,319],{},"配置全局镜像源、直接指定镜像仓库前缀这两种Docker镜像拉取方式，在默认规则下都会强制执行TLS验证‌，二者的TLS校验逻辑底层是完全一致的，没有本质区别。",[192,321,322],{},"Docker作为默认强制HTTPS通信的客户端，无论你使用哪种拉取方式，都会在和镜像仓库建立连接时完成完整的TLS握手流程。",[192,324,325],{},"只有当你手动在Docker配置中，把目标仓库地址加入了insecure-registries非安全仓库白名单后，Docker才会跳过该仓库的TLS证书校验，允许直接通过HTTP协议拉取镜像。这个例外规则对两种拉取方式同样生效，不存在某一种方式默认跳过TLS验证的情况。",[192,327,328],{},"以下是2026年7月实测可用的国内Docker镜像源汇总表格，按适用场景和特性分类整理：",[240,330,331,344],{},[243,332,333],{},[246,334,335,338,341],{},[249,336,337],{},"镜像源名称",[249,339,340],{},"加速地址",[249,342,343],{},"核心特性与适用场景",[259,345,346,360,374,388,402],{},[246,347,348,351,357],{},[264,349,350],{},"轩辕镜像免费版",[264,352,353],{},[195,354,355],{"href":355,"rel":356},"https:\u002F\u002Fdocker.xuanyuan.me",[199],[264,358,359],{},"无需登录开箱即用，支持全平台（Linux\u002FWindows\u002FmacOS），兼容群晖、极空间等主流NAS设备，内置镜像搜索功能，境内合规运营，自动屏蔽违规内容，免费版不稳定，速度一般",[246,361,362,365,371],{},[264,363,364],{},"轩辕镜像专业版",[264,366,367],{},[195,368,369],{"href":369,"rel":370},"https:\u002F\u002Fxuanyuan.cloud",[199],[264,372,373],{},"注册后获取专属加速域名，覆盖Docker Hub、GHCR、GCR、K8s官方仓库等全场景，支持多节点故障自动切换，可对接Harbor本地缓存，提供7×24小时技术支持，适配信创国产系统和ARM架构",[246,375,376,379,385],{},[264,377,378],{},"毫秒镜像",[264,380,381],{},[195,382,383],{"href":383,"rel":384},"https:\u002F\u002Fdocker.1ms.run",[199],[264,386,387],{},"老牌稳定镜像源，实测多地下载速度可达10MB\u002Fs以上，无需账号认证，配置简单",[246,389,390,393,399],{},[264,391,392],{},"DaoCloud镜像",[264,394,395],{},[195,396,397],{"href":397,"rel":398},"https:\u002F\u002Fdocker.m.daocloud.io",[199],[264,400,401],{},"国内最早的Docker镜像服务之一，背靠正规云原生厂商，服务长期稳定，兼容性极强",[246,403,404,407,413],{},[264,405,406],{},"简行镜像",[264,408,409],{},[195,410,411],{"href":411,"rel":412},"https:\u002F\u002Fdocker.jiaxin.site",[199],[264,414,415],{},"一个稳定可用的国内Docker镜像加速站，免费速度快",[192,417,418,419,421],{},"上面几个镜像源，经过测试",[223,420,406],{},"速度相对快很多，推荐使用。",[192,423,424],{},"由于国内Docker镜像源经常出现失效问题，导致很多镜像不可用，下面是他人长期更新的可用镜像源信息：",[192,426,427],{},[195,428,432],{"href":429,"rel":430,"target":431},"https:\u002F\u002Fwww.wxy97.com\u002Farchives\u002Fb5b225b6-7741-4560-be2f-2e6a4f671d9b",[199],"blank","1. 最新国内可用的Docker镜像加速器地址收集汇总",[192,434,435],{},[195,436,439],{"href":437,"rel":438,"target":431},"https:\u002F\u002Fwww.wangdu.site\u002Fcourse\u002F2109.html",[199],"2. 国内可用Docker镜像源加速器\u002FDockerHub镜像汇总",[192,441,442],{},[195,443,446],{"href":444,"rel":445,"target":431},"https:\u002F\u002Fgithub.com\u002Fdongyubin\u002FDockerHub",[199],"3. DockerHub 国内加速镜像列表",[164,448,450],{"id":449},"_3-配置镜像加速源","3. 配置镜像加速源",[452,453,454],"ol",{},[172,455,456,457,460],{},"创建或修改",[223,458,459],{},"\u002Fetc\u002Fdocker\u002Fdaemon.json","配置文件：在终端中执行以下命令，创建或编辑 Docker 的配置文件 daemon.json，请确保文件内容格式是标准的 JSON，否则 Docker 服务可能无法启动。",[462,463,468],"pre",{"className":464,"code":465,"language":466,"meta":467,"style":467},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sudo vi \u002Fetc\u002Fdocker\u002Fdaemon.json\n","bash","",[223,469,470],{"__ignoreMap":467},[471,472,475,479,483],"span",{"class":473,"line":474},"line",1,[471,476,478],{"class":477},"sBMFI","sudo",[471,480,482],{"class":481},"sfazB"," vi",[471,484,485],{"class":481}," \u002Fetc\u002Fdocker\u002Fdaemon.json\n",[452,487,489],{"start":488},2,[172,490,491],{},"写入配置信息：将国内有效的Docker镜像源粘贴到文件中，可以设置多个，Docker会按照顺序进行查找。",[462,493,497],{"className":494,"code":495,"language":496,"meta":467,"style":467},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"registry-mirrors\":[\n      \"https:\u002F\u002Fdocker.jiaxin.site\",\n      \"https:\u002F\u002Fdocker.xuanyuan.me\",\n      \"https:\u002F\u002Fdocker.1ms.run\",\n      \"https:\u002F\u002Fdocker.m.daocloud.io\"\n    ]\n}\n","json",[223,498,499,505,520,533,544,555,565,571],{"__ignoreMap":467},[471,500,501],{"class":473,"line":474},[471,502,504],{"class":503},"sMK4o","{\n",[471,506,507,510,514,517],{"class":473,"line":488},[471,508,509],{"class":503},"  \"",[471,511,513],{"class":512},"spNyl","registry-mirrors",[471,515,516],{"class":503},"\"",[471,518,519],{"class":503},":[\n",[471,521,523,526,528,530],{"class":473,"line":522},3,[471,524,525],{"class":503},"      \"",[471,527,411],{"class":481},[471,529,516],{"class":503},[471,531,532],{"class":503},",\n",[471,534,536,538,540,542],{"class":473,"line":535},4,[471,537,525],{"class":503},[471,539,355],{"class":481},[471,541,516],{"class":503},[471,543,532],{"class":503},[471,545,547,549,551,553],{"class":473,"line":546},5,[471,548,525],{"class":503},[471,550,383],{"class":481},[471,552,516],{"class":503},[471,554,532],{"class":503},[471,556,558,560,562],{"class":473,"line":557},6,[471,559,525],{"class":503},[471,561,397],{"class":481},[471,563,564],{"class":503},"\"\n",[471,566,568],{"class":473,"line":567},7,[471,569,570],{"class":503},"    ]\n",[471,572,574],{"class":473,"line":573},8,[471,575,576],{"class":503},"}\n",[452,578,579],{"start":522},[172,580,581],{},"重启 Docker 服务：保存并退出文件后，执行以下命令使配置生效。",[462,583,585],{"className":464,"code":584,"language":466,"meta":467,"style":467},"sudo systemctl daemon-reload\nsudo systemctl restart docker\n",[223,586,587,597],{"__ignoreMap":467},[471,588,589,591,594],{"class":473,"line":474},[471,590,478],{"class":477},[471,592,593],{"class":481}," systemctl",[471,595,596],{"class":481}," daemon-reload\n",[471,598,599,601,603,606],{"class":473,"line":488},[471,600,478],{"class":477},[471,602,593],{"class":481},[471,604,605],{"class":481}," restart",[471,607,608],{"class":481}," docker\n",[452,610,611],{"start":535},[172,612,613],{},"如果上面的镜像源出现TLS证书认证问题，可以通过一下设置，让Docker在握手阶段不进行TLS证书验证，出于安全性考虑，此方法不建议用于生产环境",[462,615,617],{"className":494,"code":616,"language":496,"meta":467,"style":467},"{\n  \"registry-mirrors\":[\n      \"https:\u002F\u002Fdocker.jiaxin.site\",\n      \"https:\u002F\u002Fdocker.xuanyuan.me\",\n      \"https:\u002F\u002Fdocker.1ms.run\",\n      \"https:\u002F\u002Fdocker.m.daocloud.io\"\n    ],\n  \"insecure-registries\": [\n      \"https:\u002F\u002Fdocker.xuanyuan.me\",\n      \"https:\u002F\u002Fdocker.1ms.run\",\n      \"https:\u002F\u002Fdocker.m.daocloud.io\"\n    ]\n}\n",[223,618,619,623,633,643,653,663,671,676,691,702,713,722,727],{"__ignoreMap":467},[471,620,621],{"class":473,"line":474},[471,622,504],{"class":503},[471,624,625,627,629,631],{"class":473,"line":488},[471,626,509],{"class":503},[471,628,513],{"class":512},[471,630,516],{"class":503},[471,632,519],{"class":503},[471,634,635,637,639,641],{"class":473,"line":522},[471,636,525],{"class":503},[471,638,411],{"class":481},[471,640,516],{"class":503},[471,642,532],{"class":503},[471,644,645,647,649,651],{"class":473,"line":535},[471,646,525],{"class":503},[471,648,355],{"class":481},[471,650,516],{"class":503},[471,652,532],{"class":503},[471,654,655,657,659,661],{"class":473,"line":546},[471,656,525],{"class":503},[471,658,383],{"class":481},[471,660,516],{"class":503},[471,662,532],{"class":503},[471,664,665,667,669],{"class":473,"line":557},[471,666,525],{"class":503},[471,668,397],{"class":481},[471,670,564],{"class":503},[471,672,673],{"class":473,"line":567},[471,674,675],{"class":503},"    ],\n",[471,677,678,680,683,685,688],{"class":473,"line":573},[471,679,509],{"class":503},[471,681,682],{"class":512},"insecure-registries",[471,684,516],{"class":503},[471,686,687],{"class":503},":",[471,689,690],{"class":503}," [\n",[471,692,694,696,698,700],{"class":473,"line":693},9,[471,695,525],{"class":503},[471,697,355],{"class":481},[471,699,516],{"class":503},[471,701,532],{"class":503},[471,703,705,707,709,711],{"class":473,"line":704},10,[471,706,525],{"class":503},[471,708,383],{"class":481},[471,710,516],{"class":503},[471,712,532],{"class":503},[471,714,716,718,720],{"class":473,"line":715},11,[471,717,525],{"class":503},[471,719,397],{"class":481},[471,721,564],{"class":503},[471,723,725],{"class":473,"line":724},12,[471,726,570],{"class":503},[471,728,730],{"class":473,"line":729},13,[471,731,576],{"class":503},[192,733,734],{},"然后重复第三步，重启Docker服务即刻生效。我们可以临时通过下面方式拉取镜像：docker pull 镜像源域名\u002F镜像名称",[462,736,738],{"className":464,"code":737,"language":466,"meta":467,"style":467},"docker pull docker.xuanyuan.me\u002Fhello-world\n",[223,739,740],{"__ignoreMap":467},[471,741,742,745,748],{"class":473,"line":474},[471,743,744],{"class":477},"docker",[471,746,747],{"class":481}," pull",[471,749,750],{"class":481}," docker.xuanyuan.me\u002Fhello-world\n",[164,752,754],{"id":753},"_4-配置docker代理","4. 配置Docker代理",[192,756,757],{},"如果你的网络环境支持HTTP\u002FSocks5代理（如 Clash、V2Ray 等），直接让Docker通过代理访问Docker Hub，绕过所有镜像源，速度取决于代理质量，此配置方法永久生效。",[192,759,760],{},[175,761,762],{},"方法一 systemd方式",[192,764,765,768],{},[175,766,767],{},"技术本质：在进程启动前注入\"环境变量\"。"," 通过 Linux 的 init 系统systemd，在Docker守护进程dockerd启动之前，强行向它的进程环境变量中写入HTTP_PROXY等配置。",[192,770,771],{},"你创建的文件 \u002Fetc\u002Fsystemd\u002Fsystem\u002Fdocker.service.d\u002Fhttp-proxy.conf，并不是直接修改 Docker 的程序代码，而是在 systemd 的框架下，生成了一份 “服务覆写文件”。",[169,773,774,777],{},[172,775,776],{},"当 systemd 启动 docker.service 时，它会先读取主服务文件，然后再读取 .conf 覆写文件。",[172,778,779,780,783],{},"覆写文件中的 ",[471,781,782],{},"Service"," Environment=\"HTTP_PROXY=...\" 指令，会被 systemd 原封不动地拼接进 dockerd 进程的启动环境变量表中。",[192,785,786,789],{},[175,787,788],{},"生效机理：Go 语言的标准行为。"," Docker 守护进程是用 Go 语言编写的。Go 语言的 net\u002Fhttp 标准库有一个内置行为：它会自动检查当前进程的环境变量中是否包含 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY。",[192,791,792],{},"因此，当 dockerd 进程启动时，它发现自己内存空间中存有这些变量，于是后续所有由 dockerd 发起的外部 HTTP\u002FHTTPS 请求（如拉取镜像时的 GET \u002Fv2\u002F...），都会自动将流量导向这个代理地址。",[192,794,795],{},"具体配置步骤如下：",[452,797,798],{},[172,799,800],{},[175,801,802],{},"创建或编辑 Docker 服务配置文件：",[462,804,806],{"className":464,"code":805,"language":466,"meta":467,"style":467},"sudo mkdir -p \u002Fetc\u002Fsystemd\u002Fsystem\u002Fdocker.service.d\nsudo vi \u002Fetc\u002Fsystemd\u002Fsystem\u002Fdocker.service.d\u002Fhttp-proxy.conf\n",[223,807,808,821],{"__ignoreMap":467},[471,809,810,812,815,818],{"class":473,"line":474},[471,811,478],{"class":477},[471,813,814],{"class":481}," mkdir",[471,816,817],{"class":481}," -p",[471,819,820],{"class":481}," \u002Fetc\u002Fsystemd\u002Fsystem\u002Fdocker.service.d\n",[471,822,823,825,827],{"class":473,"line":488},[471,824,478],{"class":477},[471,826,482],{"class":481},[471,828,829],{"class":481}," \u002Fetc\u002Fsystemd\u002Fsystem\u002Fdocker.service.d\u002Fhttp-proxy.conf\n",[452,831,832],{"start":488},[172,833,834],{},[175,835,836],{},"填入代理信息（示例，请替换为你的代理地址）",[462,838,840],{"className":464,"code":839,"language":466,"meta":467,"style":467},"[Service]\nEnvironment=\"HTTP_PROXY=http:\u002F\u002F127.0.0.1:7890\"\nEnvironment=\"HTTPS_PROXY=http:\u002F\u002F127.0.0.1:7890\"\nEnvironment=\"NO_PROXY=localhost,127.0.0.1\"\n",[223,841,842,853,868,881],{"__ignoreMap":467},[471,843,844,847,850],{"class":473,"line":474},[471,845,846],{"class":503},"[",[471,848,782],{"class":849},"sTEyZ",[471,851,852],{"class":503},"]\n",[471,854,855,858,861,863,866],{"class":473,"line":488},[471,856,857],{"class":849},"Environment",[471,859,860],{"class":503},"=",[471,862,516],{"class":503},[471,864,865],{"class":481},"HTTP_PROXY=http:\u002F\u002F127.0.0.1:7890",[471,867,564],{"class":503},[471,869,870,872,874,876,879],{"class":473,"line":522},[471,871,857],{"class":849},[471,873,860],{"class":503},[471,875,516],{"class":503},[471,877,878],{"class":481},"HTTPS_PROXY=http:\u002F\u002F127.0.0.1:7890",[471,880,564],{"class":503},[471,882,883,885,887,889,892],{"class":473,"line":535},[471,884,857],{"class":849},[471,886,860],{"class":503},[471,888,516],{"class":503},[471,890,891],{"class":481},"NO_PROXY=localhost,127.0.0.1",[471,893,564],{"class":503},[452,895,896],{"start":522},[172,897,898],{},[175,899,900],{},"重载并重启 Docker",[462,902,903],{"className":464,"code":584,"language":466,"meta":467,"style":467},[223,904,905,913],{"__ignoreMap":467},[471,906,907,909,911],{"class":473,"line":474},[471,908,478],{"class":477},[471,910,593],{"class":481},[471,912,596],{"class":481},[471,914,915,917,919,921],{"class":473,"line":488},[471,916,478],{"class":477},[471,918,593],{"class":481},[471,920,605],{"class":481},[471,922,608],{"class":481},[192,924,925],{},"这种配置方式（systemd 覆写文件）是在Docker守护进程（dockerd）的环境变量中设置的。这意味着，只有dockerd进程及其拉取镜像的子进程 会使用这个代理。具体来说，会受影响的操作有：",[169,927,928,931,934,937],{},[172,929,930],{},"docker pull（拉取镜像）",[172,932,933],{},"docker run 首次下载镜像时",[172,935,936],{},"docker build 构建时拉取基础镜像",[172,938,939],{},"Docker 后台自动检查镜像更新（如果有）",[192,941,942],{},[175,943,944],{},"方法二 daemon.json方式",[192,946,947],{},"这是 Docker 官方推荐的配置方式。它的优点在于配置集中、更易于管理。具体配置步骤如下：",[169,949,950,953],{},[172,951,952],{},"编辑 Docker 的配置文件 \u002Fetc\u002Fdocker\u002Fdaemon.json（如果文件不存在，则新建一个）",[172,954,955],{},"在文件中添加 proxies 配置项：",[462,957,959],{"className":494,"code":958,"language":496,"meta":467,"style":467},"{\n  \"proxies\": {\n    \"http-proxy\": \"http:\u002F\u002F你的代理地址:端口\",\n    \"https-proxy\": \"http:\u002F\u002F你的代理地址:端口\",\n    \"no-proxy\": \"localhost,127.0.0.1\"\n  }\n}\n",[223,960,961,965,979,1001,1020,1038,1043],{"__ignoreMap":467},[471,962,963],{"class":473,"line":474},[471,964,504],{"class":503},[471,966,967,969,972,974,976],{"class":473,"line":488},[471,968,509],{"class":503},[471,970,971],{"class":512},"proxies",[471,973,516],{"class":503},[471,975,687],{"class":503},[471,977,978],{"class":503}," {\n",[471,980,981,984,987,989,991,994,997,999],{"class":473,"line":522},[471,982,983],{"class":503},"    \"",[471,985,986],{"class":477},"http-proxy",[471,988,516],{"class":503},[471,990,687],{"class":503},[471,992,993],{"class":503}," \"",[471,995,996],{"class":481},"http:\u002F\u002F你的代理地址:端口",[471,998,516],{"class":503},[471,1000,532],{"class":503},[471,1002,1003,1005,1008,1010,1012,1014,1016,1018],{"class":473,"line":535},[471,1004,983],{"class":503},[471,1006,1007],{"class":477},"https-proxy",[471,1009,516],{"class":503},[471,1011,687],{"class":503},[471,1013,993],{"class":503},[471,1015,996],{"class":481},[471,1017,516],{"class":503},[471,1019,532],{"class":503},[471,1021,1022,1024,1027,1029,1031,1033,1036],{"class":473,"line":546},[471,1023,983],{"class":503},[471,1025,1026],{"class":477},"no-proxy",[471,1028,516],{"class":503},[471,1030,687],{"class":503},[471,1032,993],{"class":503},[471,1034,1035],{"class":481},"localhost,127.0.0.1",[471,1037,564],{"class":503},[471,1039,1040],{"class":473,"line":557},[471,1041,1042],{"class":503},"  }\n",[471,1044,1045],{"class":473,"line":567},[471,1046,576],{"class":503},[169,1048,1049],{},[172,1050,1051],{},"保存文件并重启 Docker 服务",[462,1053,1054],{"className":464,"code":584,"language":466,"meta":467,"style":467},[223,1055,1056,1064],{"__ignoreMap":467},[471,1057,1058,1060,1062],{"class":473,"line":474},[471,1059,478],{"class":477},[471,1061,593],{"class":481},[471,1063,596],{"class":481},[471,1065,1066,1068,1070,1072],{"class":473,"line":488},[471,1067,478],{"class":477},[471,1069,593],{"class":481},[471,1071,605],{"class":481},[471,1073,608],{"class":481},[1075,1076,1077],"tip",{},[192,1078,1079,1080,1083,1084,1086,1087,1089,1090,1092],{},"特别注意：",[1081,1082],"br",{},"\n1 首选方案：使用 daemon.json 文件进行配置。这种方式更规范，且优先级更高。",[1081,1085],{},"\n2 其次方案：如果你习惯 systemd 方式，可以继续使用，它与 daemon.json 效果等价。",[1081,1088],{},"\n3 关键点：https-proxy 的值也应以 http:\u002F\u002F 开头",[1081,1091],{},"\n4 优先级：daemon.json 中的配置优先级高于 systemd 的环境变量。如果同时存在，daemon.json 的设置会生效",[164,1094,1096],{"id":1095},"_5-验证配置是否生效","5. 验证配置是否生效",[192,1098,1099],{},"执行以下命令查看 Docker 系统信息，在输出中查找 Registry Mirrors 字段，确认其地址是否为你配置的阿里云加速源地址。",[462,1101,1103],{"className":464,"code":1102,"language":466,"meta":467,"style":467},"docker info | grep \"Registry Mirrors\"\n",[223,1104,1105],{"__ignoreMap":467},[471,1106,1107,1109,1112,1115,1118,1120,1123],{"class":473,"line":474},[471,1108,744],{"class":477},[471,1110,1111],{"class":481}," info",[471,1113,1114],{"class":503}," |",[471,1116,1117],{"class":477}," grep",[471,1119,993],{"class":503},[471,1121,1122],{"class":481},"Registry Mirrors",[471,1124,564],{"class":503},[1126,1127,1128],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":467,"searchDepth":522,"depth":522,"links":1130},[1131,1132,1133,1134,1135],{"id":166,"depth":488,"text":167},{"id":214,"depth":488,"text":215},{"id":449,"depth":488,"text":450},{"id":753,"depth":488,"text":754},{"id":1095,"depth":488,"text":1096},"2026-07-22 11:29:00","md",{},{"title":86},17.3,{"title":86,"description":89},{"loc":87},"2026-07-22 12:04:03",3109,"HVjPIMSHaC0R0yl3mrNaDMb_-uMA3DgbZFuy3XGoD2E",{"data":1147,"body":1148},{},{"type":1149,"children":1150},"root",[1151],{"type":1152,"tag":192,"props":1153,"children":1154},"element",{},[1155,1158,1165,1167,1172,1174,1179],{"type":1156,"value":1157},"text","Docker安装完成后默认的官方镜像仓库是",{"type":1152,"tag":195,"props":1159,"children":1162},{"href":1160,"rel":1161,"target":431},"https:\u002F\u002Fhub.docker.com\u002F",[199],[1163],{"type":1156,"value":1164},"Docker Hub‌",{"type":1156,"value":1166},"，这是Docker官方维护的公共镜像注册中心。但对于国内Docker用户而言，在没有魔法的情况下是无法访问Docker Hub网站的，也无法从Docker Hub仓库拉取镜像。目前国内常用的2种方法：",{"type":1152,"tag":175,"props":1168,"children":1169},{},[1170],{"type":1156,"value":1171},"Docker镜像加速源",{"type":1156,"value":1173}," 和 ",{"type":1152,"tag":175,"props":1175,"children":1176},{},[1177],{"type":1156,"value":1178},"配置Docker代理",{"type":1156,"value":1180},"。",1787625812505]