更换 Docker 镜像源
鉴于🐉龙国有伟大的墙的保护
导致我们无法对官方源 registry-1.docker.io
直接访问拉取镜像❌
需要通过更换国内镜像源或者使用境外(包含港澳台)服务器搭建docker镜像源以便镜像的拉取,绕过对 registry-1.docker.io
的直接访问。✔
你墙干的好事👇(全部超时的含金量,除了港澳台)
自建镜像源的步骤详见该项目👇
1. 编辑 Docker 守护进程配置文件
Docker 允许通过 daemon.json
文件配置镜像加速器地址。
步骤:
创建或编辑
/etc/docker/daemon.json
文件:sudo mkdir -p /etc/docker sudo vim /etc/docker/daemon.json
如果有内容就删除旧镜像源,添加新镜像源到方括号内,如果没内容就按下面的格式添加,注意格式,文中的
https://hub.测试镜像源.com
是无法使用的虚假镜像源链接,仅供当例子参考,选择一个或多个国内镜像源(如果需要添加多行,记得在末尾加逗号,最后一行或只有一行不用加):{ "registry-mirrors": [ "https://hub.测试镜像源.com" ] }
说明:
- 国内大部分镜像源因政策原因多半死透,自行找到适合自己的镜像源或使用境外服务器自建镜像源。
保存并关闭文件。
2. 重启 Docker 服务
应用配置更改:
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 验证镜像源配置
检查 Docker 是否使用了配置的镜像源:
docker info --format '{{.RegistryConfig.Mirrors}}'
输出应包含你配置的镜像源地址,例如:
[https://hub.测试镜像源.com/]
4. 测试拉取镜像
尝试拉取 hello-world
镜像:
docker run hello-world
如果配置正确,Docker 将通过镜像源拉取镜像,并显示成功运行的确认信息。
docker pull nginx
可以尝试拉取 nginx
的镜像,有进度条
成功示例:
root@debian6:/etc/docker# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
59e22667830b: Pull complete
140da4f89dcb: Pull complete
96e47e70491e: Pull complete
2ef442a3816e: Pull complete
4b1e45a9989f: Pull complete
1d9f51194194: Pull complete
f30ffbee4c54: Pull complete
Digest: sha256:84ec966e61a8c7846f509da7eb081c55c1d56817448728924a87ab32f12a72fb
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest