docker拉镜像拉不下来,一般我都是用国外vps拉下来,然后上传上去load来获取镜像,但是镜像更新的话,还得再操作

准备

一个可以正常访问的国外VPS,且已经装好docker

使用项目地址是https://github.com/dqzboy/Docker-Proxy

安装

我的安装路径为/opt/DockerProxy

mkdir /opt/DockerProxy
cd /opt/DockerProxy

下载config文件,此处我只用docker_hub,所以只用这一个配置。其他的看项目说明

wget https://github.com/dqzboy/Docker-Proxy/raw/refs/heads/main/config/registry-hub.yml

编辑docker-compose.yaml文件写入以下内容

services:
  ## docker hub
  dockerhub:
    container_name: reg-docker-hub
    image: dqzboy/registry:latest
    restart: always
    environment:
      - OTEL_TRACES_EXPORTER=none
      #- http=http://host:port
      #- https=http://host:port
    volumes:
      - ./registry/data:/var/lib/registry
      - ./registry-hub.yml:/etc/distribution/config.yml
      #- ./htpasswd:/auth/htpasswd
    ports:
      - 51000:5000

如果服务器的80端口是空闲的,可以把51000改成80,这样下面配置使用的镜像地址就不用加端口号了

然后启动就可以了

docker compose up -d

配置使用

使用这个镜像源只需要在/etc/docker/daemon.json这个文件内修改registry-mirrors这个配置项就可以了,文件可能不存在,需要新建

{
  "registry-mirrors": ["http://<VPS地址>:51000"]
}

写完文件重启docker生效

systemctl daemon-reload
systemctl restart docker

可以愉快的拉镜像了

nginx反代(可选)

只需要一个反代配置就可以了

    location ^~ /v2 {
        proxy_pass http://127.0.0.1:51000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        #proxy_redirect off;
        #proxy_http_version 1.1;
        #proxy_set_header Upgrade $http_upgrade;
        #proxy_set_header Connection "upgrade";

        #add_header X-Cache $upstream_cache_status;
        #add_header Cache-Control no-cache;
    }

标签: Docker

添加新评论

Loading...
Fullscreen Image