前置条件

  • 服务器安装好 docker 软件版本要求 25及以上
  • 服务器安装好 nginx/caddy前端代理软件(caddy的话使用v2,本例子使用)

启动本地registry服务

docker run -d -p 5000:5000 --restart=always --name registry registry:2

启动本地docker-registry-ui

docker run -d -p 5100:80 -e "SINGLE_REGISTRY=true" -e "NGINX_PROXY_PASS_URL=http://host.docker.internal:5000" --add-host host.docker.internal:host-gateway --restart=always --name registry-ui joxit/docker-registry-ui:2

使用 Caddyfile 配置 caddy

编辑 /etc/caddy/Caddyfile 配置,用https代理这2个站点,分别为registry.demo.com和registry-ui.demo.com


registry.demo.com {
	reverse_proxy http://localhost:5000
}

registry-ui.demo.com {
	reverse_proxy http://localhost:5100
}

注意事项

  • 默认运行的docker-registry-ui 无法识别 host.docker.internal为宿主机,故而需要命令行增加 --add-host host.docker.internal:host-gateway 来添加hosts设定。
  • 验证 registry是否成功可以访问 curl http://localhost:5000/v2/_catalog 能够正常返回 200 且是json格式。
  • 验证代理是否成功则分别访问 https://registry.demo.com/v2/_cataloghttps://registry-ui.demo.com 即可。