Docker换源加速(更换镜像源)详细教程(2025.1最新可用镜像,全网最详细)【测试成功】

艺帆风顺 发布于 2025-04-02 17 次阅读


前言

由于各种网络政策,在国内访问DockerHub速度会非常缓慢,大家一般都会采取更换镜像源的方式来进行加速。

但是,2024.6之后,由于政策的加强,大部分常见的镜像源已经无法使用,如下图:

因此,笔者通过各种途径搜集了目前可用的镜像源,给出了详细的换源步骤以及镜像源汇总列表,并将定期进行测试与更新 ! (文末也给出了换源的速通版)

对于不同的系统,本文使用到的对应命令可能不同,需要大家结合具体的系统来进行操作,博客有任何错误或者大家有任何问题,都可以直接在评论区留言~本篇文章以Ubuntu22.04为例,如果您需要其他系统的换源教程,可以私信留言,我将尽可能为您更新相应系统换源的教程!

如果我的博客成功解决了您的问题,烦请一件三连 (),不胜感激!

可用镜像源汇总

下列信息收集于互联网,并非笔者本人搭建,所以无法保证一直有效,建议同时配置多个镜像源。有些镜像源镜像不全或者只允许内部访问,所以如果某个镜像源无法拉取到您所需的镜像,更换另一个即可。

截止2025.1.8,下列镜像源均可用。(基于能否成功拉取hello-world进行测试)

DockerHub可用镜像源汇总
docker.m.daocloud.io
docker.imgdb.de
docker-0.unsee.tech
docker.hlmirror.com
cjie.eu.org

注:据网友反映,阿里云镜像站的镜像未同步最新镜像源,即部分镜像拉取不到最新版,故不再写在汇总表中

换源方法1-临时换源

格式如下:(不要加上前缀https://

sudo docker pull+镜像源地址+/+要拉取的镜像名

例如:

镜像源为“docker.m.daocloud.io”,要拉取的镜像名为“hello-world”,

sudo docker pull docker.m.daocloud.io/hello-world

成功拉取,如下图:

注意:此方法每次拉取镜像时都需要指定相应的镜像源

换源方法2-永久换源(推荐)

核心思想:修改docker的配置文件 daemon.json,将镜像源地址写入其中。

以ubuntu22.04为例,其余操作系统同理

  1. 创建目录(如果已经有该目录,则忽略此步骤)
sudo mkdir -p /etc/docker

知识点补充:添加“-p”,执行此命令会先检查目录是否存在。若不存在,则创建相应目录;否则,不执行任何操作。因此不管是否有该目录,直接执行此命令都没问题,不会报错

  1. 向配置文件写入镜像源

格式如下:(需要加上前缀https://

{    "registry-mirrors"[   "镜像源1",   "镜像源2"    ]}

    例如,根据2025.1.8最新测试的可用镜像源,我在此给出命令行文本编辑器两种操作方法。

    特别提醒,不管daemon.json文件是否存在,下列两种方法均可直接使用,不会报错。

    • 方法一:直接命令行输入

    直接将下列文本粘贴到终端中,然后回车运行即可。

    sudo tee /etc/docker/daemon.json 'EOF'{    "registry-mirrors": [    "https://docker.m.daocloud.io",    "https://docker.imgdb.de",    "https://docker-0.unsee.tech",    "https://docker.hlmirror.com",    "https://cjie.eu.org"    ]}EOF

      知识点补充: 告诉 shell 接下来的所有内容会被传递到命令 tee,直到遇到标记 EOF 为止,用于将多行内容作为输入传递给命令。所以不需要担心输入一行之后系统就开始执行命令 此外,若daemon.json文件不存在,直接使用tee命令不会报错,而是会创建名为daemon.json的文件

      • 方法二:通过文本编辑器打开daemon.json,然后粘贴

      首先打开配置文件:

      sudo nano /etc/docker/daemon.json

      然后直接粘贴下列内容:

      {    "registry-mirrors"[   "https://docker.m.daocloud.io",   "https://docker.imgdb.de",   "https://docker-0.unsee.tech",   "https://docker.hlmirror.com",   "https://cjie.eu.org"    ]}

        知识点补充:若daemon.json文件不存在,直接使用nano命令不会报错,而是会创建名为daemon.json的文件

        1. 重启docker服务
        sudo systemctl daemon-reload 
         sudo systemctl restart docker
        1. 验证
        sudo docker pull hello-world

        出现下图,即为成功!

        常见问题及对应解决方案

        目前还没遇到过问题…

        欢迎大家将自己遇到的问题回复在评论区中,我会积极解答并将其补充到博客中,大家共同进步!

        补充

        1.如何测试镜像源是否可用

        我们可以直接根据 ” 换源方法1-临时换源 “ ,通过拉取hello-world镜像进行测试。

        hello-world 镜像是 Docker 官方提供的一个最基础的镜像,用来测试 Docker 是否正常工作。无论你更换了哪个镜像仓库,hello-world 镜像都可以作为最基本的测试。

        但是需要注意,hello-world 镜像是否可以正常拉取与镜像源是否可用并不是完全对应的。某些特殊的镜像源可能并不支持hello-world ,但支持某些其他镜像。不过这是极少数的,

        因此,通过hello-world 镜像是否可以正常拉取来判断镜像源是否可用,这是充分条件,而不是必要条件。

        失败拉取如下图:成功拉取如下图:

        当然,我们也可以通过其他镜像来判断,例如alpinebusybox等也是比较基础且常见的镜像源,具体不再赘述。

        2.Docker内的Linux换源教程

        我们进入到Docker容器后,将是与宿主机不同的另一个Linux系统,那么如何更换Docker内Linux系统的软件源以获得更快的下载速度呢?

        可以参考此教程。

        换源速通版(可以直接无脑复制粘贴)

        1. 创建目录
        sudo mkdir -p /etc/docker
        1. 配置镜像源
        sudo tee /etc/docker/daemon.json 'EOF'{    "registry-mirrors": [    "https://docker.m.daocloud.io",    "https://docker.imgdb.de",    "https://docker-0.unsee.tech",    "https://docker.hlmirror.com",    "https://cjie.eu.org"    ]}EOF
          1. 重启docker服务
          sudo systemctl daemon-reload && 
          sudo systemctl restart docker
          1. 验证
          sudo docker pull hello-world

          出现下图,即为成功!

            版权声明:本文内容始发于CSDN>作者: hansel_sky,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。始发链接:https://blog.csdn.net/qq_73162098/article/details/145014490在此特别鸣谢原作者的创作。此篇文章的所有版权归原作者所有,商业转载建议请联系原作者,非商业转载请注明出处