# Registry 安装

生产环境下带密码的 registry 的安装

官方文档https://docs.docker.com/registry/ (opens new window)

操作视频教程 (opens new window),求三连。

# 创建 docker-compose

新建 docker-compose.yml 文件

registry:
  restart: always
  image: registry:2
  ports:
    - 5000:5000
  environment:
    REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
    REGISTRY_HTTP_TLS_KEY: /certs/domain.key
    REGISTRY_AUTH: htpasswd
    REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
    REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
  volumes:
    - /path/data:/var/lib/registry
    - /path/certs:/certs
    - /path/auth:/auth

# 创建用户

创建用户文件目录

mkdir auth

创建用户名为 testuser 密码为 testpssword 的用户

docker run \
  --entrypoint htpasswd \
  httpd -Bbn testuser testpassword >> auth/htpasswd

# 常见问题

Q: NGINX https 反代后可以 pull 不能 push

A: 在反代配置中增加下面配置,将协议传递到容器

proxy_set_header X-Forwarded-Proto https;

Q: 如何开启删除权限

A: 环境变量中增加

REGISTRY_STORAGE_DELETE_ENABLED: 'true' # 允许删除
Last Updated: 2022/11/13 12:30:47