
众所周知 Docker 官方源很早之前就被官方封禁了。国内拉取 Docker 镜像必须依赖国内镜像源:比如网易、中科大、阿里等。但是最近大家应该都遇到了无法拉取 Docker 镜像的问题,即使换了国内源也会拉取失败。
就目前的测试来看:国内的 Docker 镜像源疑似集体停止服务。而且这一切发生得静悄悄,没有任何相关公告。
目前只有几种可能性:
第一种:Docker 镜像源是公益性质的服务。随着玩 Linux 服务器、NAS 的用户越来越多,各大互联网公司和大学官方服务器不堪重负,约定一起停止提供 Docker 缓存镜像源服务。市场环境越来越差大家要节约经费也不是不可能,但是应该不会如此统一行动。
第二种:责任全在美方。这种可能性最大。
第三种:有神秘力量要求这些镜像源停止私自提供 Docker 镜像源服务。所有提供的镜像必须全部得到审查后,才可能恢复服务。或者该类型服务被永久禁止。
虽然镜像仓库并非只有docker.io(我测试了一下像ghcr.io源的一些镜像还是能龟速拉取的),但docker.io和其国内镜像源的上的容器镜像确实是玩服务器和 NAS 最常用的工具。
正好前段时间搬家,找出了吃灰已久的树莓派,所以这一期内容就和大家分享一下国内环境下如何给树莓派换源,如何安装Docker以及如何更换Docker的镜像源。
1. 国内软件源
简单解释一下什么是软件源,以及为什么要更换软件源。
以树莓派为例子。
软件源是指 debian 系操作系统的应用程序安装包仓库,很多的软件都会这收录到这个仓库里面。而树莓派的 raspberrypi 操作系统也是基于 debian 的,所以树莓派也有自己的软件源,用来收录各种树莓派应用程序。
默认情况下,树莓派软件源地址是 archive.raspberrypi.com,位于欧洲,在国内访问每秒的下载速率非常慢,所以我们一般在玩转树莓派之前会替换成国内的软件源。
树莓派的所有软件源可以从官网找到:https://www.raspbian.org/RaspbianMirrors
如下图为国内源:(下图第一个是清华大学的)
2. 切换清华软件源
我们使用清华大学源为例,树莓派系统为Debian12 (bookworm)
清华源官网地址:https://mirrors.tuna.tsinghua.edu.cn/
找到树莓派源(点击后面的 “?”,进入使用说明)
烧录镜像这些步骤我们就简单一笔带过了,相信大家都装好了系统。
选择官方的镜像烧录器,
简单配置一下Wi-Fi,这样我们一会儿我们可以直接用SSH登录。
等待烧录中......
完成!
通过本地局域网扫描工具,找到我们树莓派的IP地址,
然后我们就可以通过SSH登录到我们的树莓派上,
编辑/etc/apt/sources.list.d/raspi.list,
sudo nano /etc/apt/sources.list.d/raspi.list
注释掉原来的内容,输入:
deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bookworm main
然后回到清华源https://mirrors.tuna.tsinghua.edu.cn/首页,点击raspbian后面的 ?,进入使用说明,
首先看一下我们的架构
uname -m
是aarch64的,我们可以选择这个“Debian帮助”,
按照传统格式,编辑/etc/apt/sources.list的内容,
sudo nano /etc/apt/sources.list
把原来的三行内容都注释掉,
输入下面的内容:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
把原来的都用#注释掉,然后把上面的粘贴进去:
英文输入法下,按ctrl + x 修改,完成之后,按一下y,然后enter保存退出。
这里简单解释一下/etc/apt/sources.list.d/raspi.list和/etc/apt/sources.list的区别。
/etc/apt/sources.list 和 /etc/apt/sources.list.d/raspi.list 都是用于配置 Debian 系列 Linux 发行版(如 Ubuntu 和 Raspberry Pi OS)软件包管理工具 APT 的源列表文件。它们的主要作用是指定从哪些服务器(即软件源或仓库)下载和更新软件包。
-
/etc/apt/sources.list: -
这是 APT 的主源列表文件,通常包含系统默认的软件源配置。 -
文件内容包括软件仓库的 URL 以及它们对应的发行版和组件(如 main、universe、restricted、multiverse等)。 -
例如,典型的 sources.list文件可能包含如下条目:
deb http://archive.ubuntu.com/ubuntu/ focal main restricted
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted
deb http://archive.ubuntu.com/ubuntu/ focal universe
deb http://archive.ubuntu.com/ubuntu/ focal-updates universe
-
/etc/apt/sources.list.d/raspi.list: -
这是位于 /etc/apt/sources.list.d/目录中的一个额外源列表文件。该目录中的文件用于添加额外的软件源,以便更好地组织和管理不同来源的软件包。 -
raspi.list通常用于指定 Raspberry Pi 相关的软件源。Raspberry Pi OS(以前称为 Raspbian)可能会使用此文件来包含特定于 Raspberry Pi 的软件包和更新源。 -
例如, raspi.list文件可能包含如下条目:
deb http://archive.raspberrypi.org/debian/ buster main
通过将不同的软件源配置分散到多个文件中(如 sources.list 和 sources.list.d/ 目录中的文件),可以更灵活地管理和维护软件源。这样做的好处包括:
-
更容易添加或删除特定的软件源,而不需要修改主 sources.list文件。 -
可以按来源或功能对软件源进行分组和组织,增加可读性和管理性。
总结来说,/etc/apt/sources.list 是系统的主软件源配置文件,而 /etc/apt/sources.list.d/raspi.list 是一个用于指定额外软件源的文件,特别是与 Raspberry Pi 相关的软件源。
更新一下软件包看看。
sudo apt update -y
sudo apt upgrade -y
速度还凑合,差不多3MB/s。
3. 安装并配置Docker(国内服务器、NAS一样适用)
由于网络问题,我们只能尝试使用国内的Docker镜像源。以下是使用阿里云镜像源的步骤:
步骤1:添加阿里云的Docker GPG密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
步骤2:配置阿里云的Docker APT源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
步骤3:更新APT包索引
sudo apt-get update
步骤4:安装Docker引擎
sudo apt-get install docker-ce docker-ce-cli containerd.io
按下Y,
耐心等待安装,这一步可能比较花费时间。
等安装好之后,分别输入:
docker -v #查看docker的版本号
docker compose version #查看docker compose的版本号,注意新版本没有-啦
出现下面这个,说明安装成功了!
步骤5:更换Docker镜像源(2024年8月5日测试可用)
目前测试,以下几个image的镜像源目前还可以用:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerhub.icu",
"https://docker.anyhub.us.kg",
"https://docker.1panel.live"
]
}
我们可以顺便增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘(泪的教训)。
所以总的json配置如下:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true,
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerhub.icu",
"https://docker.anyhub.us.kg",
"https://docker.1panel.live"
]
}
命令行输入:
sudo -i
然后输入:
cat > /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true,
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerhub.icu",
"https://docker.anyhub.us.kg",
"https://docker.1panel.live"
]
}
EOF
即可完成配置。
然后重启一下daemon和docker服务:
sudo systemctl daemon-reload #重启daemon进程
sudo systemctl restart docker #重启docker
设置一下docker开机自动启动:
sudo systemctl enable docker
这样就配置好啦,可以去pull一个镜像试试看速度。
docker pull linuxserver/qbittorrent
凑合能用。
4. 群晖Synology添加镜像源
以上方法国内的服务器也适用的,包括NAS。
这边以群晖Synology为例子,
https://dockerhub.icu
https://docker.anyhub.us.kg
https://docker.1panel.live
5. 参考资料
树莓派更换软件源:https://juejin.cn/post/7337188759056744463
国内Docker镜像源疑似集体停止服务,玩NAS的郁闷了:https://post.smzdm.com/p/aeq9gw7m/
硬件军火库

DFRobot官方品牌店 https://dfrobot.taobao.com/
DFRobot官方旗舰店 https://dfrobot.jd.com/
大家有什么想说的,欢迎在下方留言!
往期项目回顾
让你的所有苹果设备实现AI大模型自由!私有化部署大语言模型,安全、私密,随时随地访问!
【保姆级教程】小爱同学+AI!魔改小爱音箱,接入本地AI大模型,打造你的专属语音助手!
用树莓派4做个迷你版PS5
嘘!嫌邻居放歌太吵,开发者偷用「树莓派+AI」黑进音箱:干扰音频,使其不得不关
用树莓派Pico做一个复古迷你磁带播放器
点击阅读👆

