前言
配置 Docker 镜像源能大幅提升在国内拉取镜像的速度。可以通过修改 Docker 的配置文件来实现。
修改 Docker 镜像源步骤
1. 找到并编辑配置文件
配置文件通常位于 /etc/docker/daemon.json。如果文件不存在,可以新建一个。
sudo vim /etc/docker/daemon.json
2. 写入镜像源配置
将你选择的镜像源地址填入配置。例如,使用南京大学镜像源:
{ "registry-mirrors": ["https://docker.nju.edu.cn/"] }
你可以配置多个镜像源,Docker 会按顺序尝试:
{ "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] }
3. 镜像源提供
下面提供一些可用的镜像源:
{
"insecure-registries": [ "docker.1ms.run", "hub.rat.dev", "mirror.azure.cn", "docker.1panel.live" ],
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://docker.1ms.run",
"https://hub.rat.dev",
"http://mirror.azure.cn",
"https://docker.1panel.live/",
"https://mirror.ccs.tencentyun.com",
"https://9cpn8tt6.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"https://mirror.ccs.tencentyun.com",
"https://docker.1panel.live",
"https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://dockerhub.icu",
"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"
],
"iptables": false
}
4. 重启 Docker 服务
保存配置文件后,需要重启 Docker 服务使配置生效。
# 方法 1,采用 systemctl 重启,推荐
sudo systemctl daemon-reload
sudo systemctl restart docker
# 方法 2,采用 service 重启
sudo service docker restart
备注:
systemctl 和 service 重启方式主要有以下区别:
1. 所属架构不同
service:属于 SysV init 架构下的服务管理工具,主要用于操作位于/etc/init.d/目录下的脚本。systemctl:是 systemd 架构下的服务管理工具,用于对.service类型的 unit 执行操作。
2. 功能和用途差异
service:- 功能较为基础,主要用于启动、停止和重启服务。
- 不支持查看服务的详细状态或其他高级操作。
- 只能管理 SysVinit 启动的服务。
systemctl:- 提供了更多的功能和选项,例如可以查看服务的状态、启动、停止、重启、重载、重新加载等。
- 除了基本的启动、停止、重启之外,还可以查看服务状态、设置开机启动、管理系统目标(targets)、处理日志、管理 sockets 和 timers 等。
- 能够通过 systemd 的状态管理系统提供更详细和准确的服务状态信息,直接与 systemd 的数据库交互,而不是通过执行脚本获取状态。
- 可以管理 systemd 和 SysVinit 启动的服务。
3. 重启机制不同
service:service restart命令只会启动服务。systemctl:systemctl restart命令会先停止服务,然后再启动服务。
4. 兼容性不同
service:在使用 systemd 的系统中,为了向后兼容,service命令通常仍然可用,但它实际上可能只是systemctl的一个简单封装,调用systemctl来执行操作。systemctl:在基于 systemd 的系统中使用,现代 Linux 发行版普遍采用 systemd。
5. 验证
配置完成后,你可以通过以下命令检查镜像源是否设置成功:
docker info
在输出信息中,找到 Registry Mirrors 部分,如果其中显示了您配置的镜像源地址,就说明配置已经生效。

