某些场景下,为了保证私有仓库的安全,可能会期望将Docker Registry基于HTTPS协议开放。
1) 通过docker search
搜索registry
镜像。
docker search registry
2) 拉取registry
最新镜像。
docker pull registry
3) 查看镜像信息。
docker images
4) 使用OpenSSL创建证书文件。
① 确认OpenSSL是否已安装。
openssl version
② 若为安装,先安装OpenSSL。
apt-get update
apt-get install -y openssl
③ 进入目录securitit/registry/certs/
(根据自身需求创建即可),执行命令创建.crt
和.key
证书文件。
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /securitit/registry/certs/registry.key -x509 -days 365 -out /securitit/registry/certs/registry.crt
5) 使用registry
镜像启动容器。
docker run -d -p 5000:5000 --privileged=true -v /securitit/registry/certs/:/securitit/registry/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/securitit/registry/certs/registry.crt -e REGISTRY_HTTP_TLS_KEY=/securitit/registry/certs/registry.key registry
6) 查看容器信息。
docker ps -a
7) 访问https://192.168.20.53:5000/v2/_catalog查看私有仓库内镜像信息。
8) 通过htpasswd
生成密码文件。
htpasswd -Bbn Securitit 123456 > /securitit/registry/auth/htpasswd
9) 使用registry
镜像启动容器,同时启用基于HTTP BASIC认证。
docker run -d \
--name registry \
-p 5000:5000 \
--restart=always \
--privileged=true \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-v /securitit/registry/auth/:/securitit/registry/auth \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/securitit/registry/auth/htpasswd" \
-v /securitit/registry/certs/:/securitit/registry/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/securitit/registry/certs/registry.crt \
-e REGISTRY_HTTP_TLS_KEY=/securitit/registry/certs/registry.key \
registry
10) 访问https://192.168.20.53:5000/v2/_catalog查看私有仓库内镜像信息。
11) 输入设置的用户名和密码后,可正常访问。
总结
本文介绍了,如何配置Docker Registry基于HTTPS开放服务,同时配置基于HTTP BASIC认证方式。
若文中存在错误和不足,欢迎指正!