Docker registry V2

部署私有Docker Registry


搭建 Insecure Registry

修改Registry server上的Docker daemon的配置,为DOCKER_OPTS增加–insecure-registry:
DOCKER_OPTS="--insecure-registry 10.10.105.71:5000
重启Docker Daemon,启动Registry容器:

#docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --restart=always --name registry registry:2

在Private Registry2中查看或检索Repository或images,将不能用docker search:
但通过v2版本的API,我们可以实现相同目的:

#curl http://10.10.105.71:5000/v2/_catalog
#curl http://10.10.105.71:5000/v2/tonybai/busybox/tags/list

注:交互的主机上的Docker Daemon都要配置:–insecure-registry选项

搭建 Secure Registry

需要为Registry配置tls所需的key和crt文件
1、制作自签署证书
#mkdir -p certs
#openssl req -newkey rsa:2048 -nodes -sha256 -keyout certs/index.changhong.info.key -x509 -days 365 -out certs/index.changhong.info.crt
…………
Common Name (e.g. server FQDN or YOUR name) []:index.changhong.info

2、修改一下/etc/hosts文件: 10.10.105.71 index.changhong.info
3、配置本地访问
$ sudo mkdir -p /etc/docker/certs.d/index.changhong.info:5000
$ sudo cp certs/index.changhong.info.crt /etc/docker/certs.d/index.changhong.info:5000/ca.crt
$ sudo service docker restart

如果使用自签署的证书,那么所有要与Registry交互的Docker主机都需要安装index.changhong.info:5000/ca.crt
但如果你使用知名CA这一步也就可以忽略

Registry的鉴权管理

server上增加test用户,密码test123
$ mkdir auth
$ docker run --entrypoint htpasswd registry:2 -Bbn test test123 > auth/htpasswd

启动Secure Registry
$ docker run -d -p 5000:5000 --restart=always --name registry \
-v /auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v /data:/var/lib/registry \
-v /certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/index.changhong.info.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/index.changhong.info.key \
registry:2

执行docker login:
$docker login index.changhong.info:5000
Username: test
Password: test123

Registry中images的管理
$ curl --cacert index.changhong.info.crt --basic --user test:test123 https://index.changhong.info:5000/v2/_catalog

 

posted on 2016-02-28 20:26  baxk2001  阅读(1027)  评论(0编辑  收藏  举报

导航