Linux上Docker镜像源配置

前言

Docker 1.13 发布于 2017 年,它主要使用较旧的 Registry V1 或早期的 V2 协议,现在的镜像源为了安全和效率,大多已经全面采用 Registry V2 API 和新的 Manifest 格式,这样就导致设置镜像源后镜像源能获取到但是不起作用。

所以设置镜像源前要看一下Docker版本是否太低。

建议使用最新的 Docker CE 版本(26.x)。

查看源

1
docker info | grep -A 10 "Registry Mirrors"

或者

1
docker info --format '{{json .RegistryConfig.Mirrors}}'

设置源

针对Docker客户端版本大于 1.10.0 的用户

创建或修改 /etc/docker/daemon.json 文件

1
vi /etc/docker/daemon.json

添加或修改

1
2
3
4
5
6
7
8
9
10
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.1ms.run/",
"https://docker.m.daocloud.io",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com"
],
"dns": ["223.5.5.5", "114.114.114.114"]
}

重启Docker

1
2
systemctl daemon-reload
systemctl restart docker.service

注意:

现在之前开放的镜像源基本都不能用了,这里使用的是毫秒镜像,需要登录自己的账号。

查看镜像设置是否生效

1
sudo docker info

测试

1
2
3
4
5
# 使用 daocloud
docker pull docker.m.daocloud.io/library/nginx:latest

# 或者使用轩辕
docker pull docker.xuanyuan.me/library/nginx:latest