前言
解决无法拉取 docker 镜像的问题
参考资料
使用别人搭建的镜像源
1.在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
1 2 3
| { "registry-mirrors": ["https://docker.1panel.live", "https://hub.rat.dev/", "https://docker.chenby.cn", "https://docker.m.daocloud.io", "https://cr.laoyou.ip-ddns.com"] }
|
2.重启守护进程
3.重启Docker
1 2 3
| sudo systemctl restart docker 或者 service docker restart
|
缺点:不稳定
也可以使用下面的:
https://docker.melikeme.cn/
Docker 镜像加速服务
自己搭建镜像源
方法一:
参考项目:Docker-Proxy
部署在render上的教程
如果长时间不用的话服务可能会停止,重启下服务即可。

方法二:
搭建在cloudflare
2024自建Docker镜像代理加速 教程来了 3分钟部署完毕
方法三:在自己的vps上使用nginx反代docker
方法来源:https://linux.do/t/topic/320048
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| map $upstream_http_www_authenticate $m_www_authenticate_replaced { "~auth\.docker\.io(.*)" "$1"; default ""; }
map $m_www_authenticate_replaced $m_final_replaced { "~(.*)" 'Bearer realm=\"$scheme://$host$1'; default ""; }
server {
proxy_ssl_server_name on;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 修改授权地址 proxy_hide_header www-authenticate; add_header www-authenticate "$m_final_replaced" always;
# 关闭缓存 proxy_buffering off; # 转发认证相关 proxy_set_header Authorization $http_authorization; proxy_pass_header Authorization;
# 对 upstream 状态码检查,实现 error_page 错误重定向 proxy_intercept_errors on; recursive_error_pages on;
# 根据状态码执行对应操作,以下为301、302、307状态码都会触发 error_page 301 302 307 = @handle_redirect;
location ~* ^/(v2|v1|v1.29)/ { proxy_pass https://registry-1.docker.io; proxy_set_header Host registry-1.docker.io; proxy_read_timeout 18000s; proxy_send_timeout 18000s; send_timeout 18000s; proxy_connect_timeout 18000s; } #处理重定向 location @handle_redirect { resolver 1.1.1.1; set $saved_redirect_location '$upstream_http_location'; proxy_pass $saved_redirect_location; }
#代理授权地址 location ^~ /token { proxy_pass https://auth.docker.io; proxy_set_header Host auth.docker.io; } #一键申请SSL证书验证目录相关设置 location ~ \.well-known{ allow all; }
}
|
镜像加速器
Docker 镜像加速器,无法拉取 DockerHub 镜像?dkTurbo 来帮你!傻瓜式的应用可以帮你自动换源,从而使用更快的镜像加速下载。
项目地址:https://hub.docker.com/r/cp0204/dkturbo
一键运行:
1 2 3 4 5 6 7 8 9 10
| docker run --rm \ --name=dkturbo \ -v /etc/docker:/etc/docker \ -v /opt:/opt \ -e MODE=registry \ -e REGISTRY=auto \ --network=bridge \ --pid=host \ --privileged \ registry.cn-shenzhen.aliyuncs.com/cp0204/dkturbo:main
|
docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| name: dkturbo services: dkturbo: image: registry.cn-shenzhen.aliyuncs.com/cp0204/dkturbo:main container_name: dkturbo volumes: - /etc/docker:/etc/docker - /opt:/opt environment: - MODE=registry - REGISTRY=auto network_mode: bridge restart: unless-stopped pid: host privileged: true
|
启动 = 自动换源
自动测速和修改镜像源,你可以在容器日志里看工作进度。
容器停止 = 换源成功
换源后自动停止自身,并重启系统 Docker 服务,此时容器可以删除。
参考资料
佬友公益docker镜像源+1