购买可访问hub.docker.com的代理服务器
略过
在代理服务器部署docker+nginx
docker非必须,我这里安装docker是为了方便安装nginx
安装nginx
docker run --name nginx -itd -p 80:80 -p 443:443 nginx:alpine3.20
进入nginx配置目录
cd /etc/nginx/conf.d
创建nginx配置文件
vi registry.xxxx.cn.conf
# 添加如下内容
server {
listen 443 ssl ;
ssl_protocols TLSv1.2 TLSv1.3;
server_name registry.xxxx.cn;
ssl_certificate /etc/nginx/conf.d/registry.xxxx.cn.crt;
ssl_certificate_key /etc/nginx/conf.d/registry.xxxx.cn.key;
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容器中
registry.xxxx.cn.crt;
registry.xxxx.cn.key;
镜像加速
docker pull registry.xxxx.cn/rancher/rancher
或者编辑镜像配置文件
/etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.xxxx.cn",
]
}
然后直接操作
docker pull rancher/rancher