如何搭建自定义docker registry及web管理界面
前置条件
- 服务器安装好 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/_catalog
和https://registry-ui.demo.com
即可。