使用Register和Nginx Proxy Manager自建Docker镜像源

前言

由于众所周知的原因,Docker镜像源变得稀少,那么这个时候如果有个自建的源就会方便很多。
如果你只想找一个可用的源,那么跳过后文直接使用:https://docker-mirror.us.kg

安装Nginx Proxy Manager

Nginx Proxy Manager实在是太好用了,和Docker搭配绝佳。

一行命令搞定:

docker run -d --name=nginx-proxy-manager --network=host -v /path/to/npm/data:/data --restart=unless-stopped -v /path/to/npm/letsencrypt:/etc/letsencrypt jc21/nginx-proxy-manager:latest

默认用户名:admin@example.com

默认密码:changeme

默认端口:81

注意: Nginx Proxy Manager会占用80,443。可能会占用3000端口,具体是干啥的还不清楚。

登录Nginx proxy Manager并改好密码。

安装Register

创建Docker网络

docker network create --driver bridge --subnet 172.19.0.0/16 --gateway 172.19.0.1 register

新建目录并创建docker-compose.yml文件,写入以下内容。

version: "3"
services:
  dockerhub:
    container_name: reg-hub
    image: library/registry:2.8.3
    restart: always
    environment:
      - REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io
    volumes:
      - /mnt/vdb1/registry-data:/var/lib/registry
    networks:
      register:
        ipv4_address: 172.19.0.10
    hostname: docker-porxy

networks:
   register:
     external: true

启动Docker,注意此处未暴露端口,因此需要访问172.19.0.10:5000才能访问镜像。

docker-compose up -d

配置Nginx Proxy Manager反代并且禁止Push

设置反代:
%title插图%num
禁用Push:
%title插图%num
开启SSL:
%title插图%num

至此配置完成,用你的域名替换原来的镜像域名即可,如果你的地区Cloudflare友好的话,还能配合Cloudflare使用。
不过,如果你不想自己搭建,也可以使用本站提供的镜像源:
https://docker-mirror.us.kg

THE END