# 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' # 允许删除