Docker Registry 在不方便查看镜像列表和镜像版本,删除镜像也不好操作。可以安装 docker-registry-browser 来解决这个问题。
官方文档:https://github.com/klausmeyer/docker-registry-browser/blob/master/docs/README.md
安装
docker run --name registry-browser -p 8080:8080 klausmeyer/docker-registry-browser
环境变量
DOCKER_REGISTRY_URL
内部的 Registry 地址,如:http://192.168.0.1:5000
。
PUBLIC_REGISTRY_URL
公开的Rigistry域名,点击页面上方的连接地址时,使用该域名。如:docker.domian.com
。
ENABLE_DELETE_IMAGES
是否开启删除镜像的功能。如:true
。
SECRET_KEY_BASE
需要设置一个唯一的随机数用于加密。可在 Linux 系统中,使用 openssl rand -hex 64
命令获取。
This option must be set to a unique & random value as it is used for different encryption related functionality by the used framework.
A value can be generated with the following command:
openssl rand -hex 64
The application will check the option from version >= 1.7.0 and refuse to startup when no proper value has been set.
K8s Ingress 元数据设置
推送镜像内容通常较大,时间较长,nginx 默认配置可能会限制数据包大小,出现 413 Entity Too Large
的错误。
在 Ingress 元数据的注解中做如下配置:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
# "0" 代表不限制
nginx.ingress.kubernetes.io/proxy-body-size: "0"
nginx.ingress.kubernetes.io/proxy-read-timeout: "1200"
nginx.ingress.kubernetes.io/proxy-send-timeout: "1200"
K8s Ingress 路由设置
将根目录 /
路径前缀映射到 docker-registry-browser
的 8080
端口,将 /v2
路径前缀映射到 docker-registry
的 5000
端口。