首先,你得有一台国外的服务器

在国外外的服务器上搭建仓库程序DockerRegistry

docker run -d \
-p 5000:5000 \
--name registry \
-v /root/data/docker_run_data/registry:/var/lib/registry \
-e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
--restart always \
registry:2

正常来说,这个时候你只需要将国内服务器的docker镜像源换成你这个国外服务器的地址就行了:

vim /etc/docker/daemon.json
# 添加
{
"registry-mirrors":["http://ip:5000"]
}

如果做了反向代理,就把地址换成代理的域名:

{
"registry-mirrors":["https://域名"]
}

这个时候我们可以做个反向代理,我习惯性用Nginx Proxy Manager,你也可以自己手搓,或者找别人的一键脚本。安装Nginx Proxy Manager:

mkdir -p /data/docker_data/npm && cd /data/docker_data/npm
vim docker-compose.yml

将一下代码粘上去

version: '3.8'
services:
  app:
    image: 'docker.io/jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81' #左边的可以改成自己服务器未被占用端口可以用lsof -i:端口  查看
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt