休闲

dockerhub国内镜像地址

时间:2010-12-5 17:23:32  作者:娱乐   来源:探索  查看:  评论:0
内容摘要:上周帮同事配新服务器,拉个 nginx 镜像卡了十分钟,进度条一动不动。不用猜,registry-1.docker.io 又被墙了。这事儿在国内做开发的都懂——Docker Hub 不是不能用,是得换

上周帮同事配新服务器,内镜拉个 nginx 镜像卡了十分钟,像地进度条一动不动。内镜不用猜,像地registry-1.docker.io 又被墙了。内镜这事儿在国内做开发的像地都懂——Docker Hub 不是不能用,是内镜得换个姿势用。

先说清楚一个前提:Docker 官方并没有在中国大陆部署官方镜像站点。像地所有号称"官方"的内镜国内加速器,本质都是像地第三方搭建的缓存代理。理解这一点,内镜后面选择用哪个心里就有数了。像地

目前还能用的内镜几个

中科大(USTC)的镜像是我用得最久的,地址是像地 https://docker.mirrors.ustc.edu.cn。稳定,内镜速度中规中矩,教育网内表现更好。配置方式也简单,在 /etc/docker/daemon.json 里加一行就行:

{  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }

改完 systemctl restart docker 重启生效。注意这个只对 Docker Hub 的官方镜像生效,quay.io、gcr.io 那些该拉不动还是拉不动。

网易的 https://hub-mirror.c.163.com 前几年挺快,现在偶尔抽风。阿里云的需要登录容器镜像服务控制台,每个账号会分配一个专属加速地址,形如 https://xxxx.mirror.aliyuncs.com。好处是走阿里云内网,ECS 上拉镜像飞快;坏处是配置略麻烦,而且只对阿里云账号有效。

腾讯云也提供类似服务,地址在容器服务控制台里能找到,格式跟阿里云差不多。如果你用的是腾讯云服务器,优先用这个。

一个很多人不知道的事

2024 年 6 月开始,国内大批公共镜像站陆续关停或限制访问。阿里云、腾讯云、中科大、网易、南京大学等一度都出现了无法拉取的情况。原因是监管层面要求镜像服务必须备案并接受内容审查,很多高校和云厂商干脆选择暂停服务。

所以你现在搜到的很多"2024 最新镜像地址"文章,里面列的东西可能已经挂了。这不是文章质量问题,是变化太快。我自己的做法是:本地保留两三个可用地址,定期测一下,哪个通用哪个。

配置多个镜像源

daemon.json 里 registry-mirrors 是个数组,可以写多个。Docker 会按顺序尝试,第一个不通就试下一个。比如:

{  "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] }

但别写太多,启动时每个都要探测,反而拖慢 Docker 启动速度。两到三个足够。

如果镜像站全挂了怎么办

两个备选方案。一是用代理,在 Docker 的 systemd 配置里加 HTTP_PROXY 环境变量,让 dockerd 走代理拉镜像。前提是你有可用的代理。二是用 docker pull 之外的方式,比如从有网络的机器上 docker save 导出 tar 包,再 docker load 导入。麻烦,但绝对可靠。

还有个偏方:把镜像名里的 docker.io 换成其他公共 registry 的地址。比如有些项目在 GitHub Container Registry(ghcr.io)上也发布了镜像,而 ghcr.io 在国内的可达性时好时坏,但至少多一条路。

我现在的做法

主力用中科大,备用网易。每季度手动测一次 docker pull hello-world,看哪个还能用。服务器上配好 daemon.json,本地开发机也配一份。遇到拉不动的镜像,先 ping 一下镜像站域名,确认是 DNS 问题还是服务挂了。

说到底,国内用 Docker Hub 就是个持续折腾的事。没有一劳永逸的方案,保持关注、及时调整,比收藏一堆过期的"最新地址"有用得多。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap