docker registry 配置证书和使用用户名密码登录
- 下载
registry
镜像
docker pull registry
- 生成自签名证书,假设当前的域名是:
test.registry.com
创建目录
mkdir registry && cd registry && mkdir certs && cd certs
生成证书和私钥
cd .. && mkdir auth
docker run --entrypoint htpasswd registry -Bbn testuser password > auth/htpasswd
用户名:
test
密码:pass
- 启动
registry
docker run -d -p 5000:5000 --restart=always --name registry -v `pwd`/auth:/root/registry/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/root/registry/auth/htpasswd -v `pwd`/certs:/root/registry/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/root/registry/certs/registry.crt -e REGISTRY_HTTP_TLS_KEY=/root/registry/certs/registry.key -v /data:/var/lib/registry registry
- 验证
在另外一台机器或者是本机上,执行
mkdir -p /etc/docker/certs.d/test.registry.com:5000
如果此域名没有在
DNS
上配置,可以通过设置hosts
来临时测试使用
echo "x.x.x.x test.registry.com" >> /etc/hosts
登录
docker login
就可以验证
docker pull
,docker push
了