前几天写了利用免费的cloudflare workers 解决docker无法拉取镜像的问题,但是cloudflare速度太慢,对于部分网络不好的童鞋拉取镜像速度偏慢,这里就利用服务器+nginx反向代理docker hub,实现不限速拉取镜像。

实际上上一期《cloudflare workers 解决docker无法拉取镜像问题》本质也是反向代理,只是用了cloudflare免费的服务罢了,但对于部分地区的童鞋而言虽然能拉取镜像了,但是速度慢的很(cf访问速度是这样的),利用nginx反向代理看的就是自己服务器的速度了,如果服务器速度足够快,跑满自己的宽带速度都不是问题。

什么是反向代理?“反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端做任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。”以上这段话出自百度百科,总之就是通过访问反代服务器来访问其他的网站。目前反向代理的服务有很多,这里就用nginx来实现,其他的例如caddy等都可以,这里就不介绍,感兴趣的童鞋可以自己百度。

一、所需工具

1.一台海外云服务器。什么,没有服务器?前几期也有写试用gcp,azure、aws、甲骨文等等都有免费的服务器,相关内容可以自行google。也可以选择购买服务器,这就不多说,看上啥买啥就行了,系统要选择linux类的,注意云服务器物理位置需要在海外,国内云也是拉取不了镜像的。

还有一点需要注意,反向代理后拉取docker的速度取决于自己到服务器的速度,所以如果服务器速度很慢,那还不如选择用cloudflare。

2.一个域名,域名相关内容可以翻看往期文章。且需要把域名提前解析到服务器对应的ip上。

二、部署宝塔面板

这一步仅仅是针对小白,如果熟悉nginx,也可以自己手搓nginx配置,当然也可以选择其他的类似面板,用宝塔无非就是有个web界面,配置起来很方便,本质上和手搓nginx配置并无区别。而且不同版本的linux安装nginx命令还都有些不一样,甚至配置文件目录也可能也都不一样,为了通用性本篇只以宝塔为例。

在root环境下用一键脚本安装宝塔:

if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec

安装完成之后会生成宝塔登录地址和账号密码,如果无法访问需要先去服务器控制台安全组放行对应端口,系统内部的防火墙也需要放行。

外网面板地址: http://127.0.0.1:9999/55dc0c66   #放行9999端口,宝塔登录地址
内网面板地址: http://127.0.0.1:9999/55dc0c66
username: aaaaa                        #宝塔账户
password: bbbbb                        #宝塔账户密码

然后就可以登录到宝塔面板,如果无法打开,记得检查防火墙。首次登录宝塔后会弹出安装对应的环境,我们这只需要用到nginx,所以单独安装nginx就行(安装推荐的版本就行),其他的不用安装。

三、配置nginx

当安装好后nginx后进入网站-PHP项目,点击添加站点,输入自己的域名,例如自己想用“a.a.com”来访问这个服务器(反向代理),那域名这里就直接填写“a.a.cpm”,不用加“http”或者“https”;php版本选择纯静态,也不用数据库。
注意:域名需要解析到服务器对应的ip地址。例如服务器地址为“10.10.1.7”,那就是把“a.a.com”解析到“10.10.1.7”这个ip。

当建立好网站后可以给反向代理添加一个ssl,实现https访问,要比http安全很多。点击刚刚建立好的网站-设置,进入ssl,选择Let’s Encrypt,选定自己的域名,点击确定,等待几秒钟就可以获取到ssl证书,然后再顺带启用强制https。

再进入配置文件,拉到最下面,在最后一个“}”符号前面插入以下代码(文中的代码和图的代码是一致的,只是我删去了注释):

    location / {
                     proxy_pass https://registry-1.docker.io;  
                     proxy_set_header Host registry-1.docker.io;
                     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_buffering off;
                     proxy_set_header Authorization $http_authorization;
                     proxy_pass_header  Authorization;
                     proxy_intercept_errors on;
                     recursive_error_pages on;
                     error_page 301 302 307 = @handle_redirect;
​
             }
                          location @handle_redirect {
                     resolver 1.1.1.1;
                     set $saved_redirect_location '$upstream_http_location';
                     proxy_pass $saved_redirect_location;
             }

确认以上无误,就可以点击保存,至此完成了nginx反代docker hub的配置。此时访问自己的域名就会显示“404 page not found”,这个是正常的,但如果无法访问自己的域名,那请检查是否放行了443和80端口。

四、验证并拉取镜像

如果以上步骤都无误,就可以直接拉取docker镜像,但是需要对相应的拉取命令做更改。

1.常规拉取镜像

例如原拉取命令如下:

docker pull library/alpine:latest

那就需要在前面加上自己的域名:

docker pull 自己的域名/library/alpine:latest

当然也可以直接设置docker registry,替换成自己的域名即可:

sudo tee /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": ["https://自己的域名"]
}
EOF

2.nas拉取镜像

如果是用的nas,以威联通为例,可以直接在添加docker时候选择高级模式,输入自己的域名来拉取docker;也可以在存储库中添加对应的registry,注意供应商要选择其他,url要填写完整(带https),之后在创建容器的时候选择对应的存储库就行。

3.其他

其他系统或者设备参照上面的方法修改对应的源(registry)就行。

如果配置无误,就可以正常下载镜像了。

五、其他

1.反向代理取决于服务器的速度,所以如果服务器速度太慢,建议换个服务器。

2.反向代理也需要消耗服务器的流量,但是一般情况下个人使用不会消耗太多,如果服务器成本太高,可以多个人合租也行。

3.不要随意把访问地址告诉他人,不然服务器被攻击或者被刷流量,损失的的是自己,并且建议做好防护措施。

https://www.88531.cn/?p=36784


新软师兄 » nginx反向代理docker hub,加速拉取镜像,解决docker无法拉取镜像问题
50T免费网盘资源大集合【持续更中~~~~】:点击查看

dase kand pornhan.mobi xvideo desi gay pcso 2pm result today pinoytvfriends.com where i can watch bad romeo كلام فى النيك wfporn.com قصص محارم حديثة busporn porngugu.mobi indian sexx vedios sex ka video noticieroporno.com himachal pradesh sex com
nero hentai hentaitgp.com ламия хентай www.mom xxx.com alohaporn.me sahara knite mature fucking tubepatrolporn.com bhabi sex indian girl sex gotporn.mobi xnxx family strocks ang probinsyano july 20 2022 full episode youtube pilipinoteleserye.com ano ang pambansang sasakyan ng pilipinas
احلي سكس محارم pornxporn.org نيك فلاحى multi.xnxx alohaporn.net telugu sex chart سكس قصيرات arabysexy.org نيك نقاب www assames sex com umora.info desi sexy bhabi 8teenx bukaporn.com india hot sex videos