docker 搭建本地私有仓库 (v2)

原创
2017/03/28 11:25
阅读数 80

官方文档

Deploying a registry server

当然搭建自己的私有仓库是为了管理公司的私有项目(镜像)

最主要的部分就是自签名证书 了

自签名证书

基本知识请参考这里TLS/HTTPS 证书生成与验证

how it works

有一点就是我们在内网生成自签名的证书时


openssl req -x509 -days 3650 -subj '/CN=reg.sc.com/' -nodes -newkey rsa:2048 -keyout registry.key -out registry.crt;

_-subj _ 这个是比较重要的,如果/CN (Common Name) 使用ip的话需要去配置openssl.conf文件,略复杂,这里不赘述,所以建议都填写一个域名,然后修改 /etc/hosts

具体操作

// 生成证书
cd ~/;

mkdir registry && cd registry && mkdir certs && cd certs;

openssl req -x509 -days 3650 -subj '/CN=reg.zimug.com/' -nodes -newkey rsa:2048 -keyout registry.key -out registry.crt;

// 生成用户名密码 ,用来做Restricting access,web页面上相关的操作。

cd ~/registry&& mkdir auth;

docker run --entrypoint htpasswd registry:2.2 -Bbn username password > auth/htpasswd;

构建启动脚本:

docker run -d --restart=always --name registry \
-v `pwd`/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
-v `pwd`/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
-v `pwd`/data:/var/lib/registry \
-p 5000:5000 \
registry:2.2

客户端配置

//下载证书到此目录
sudo mkdir -p /etc/docker/certs.d/reg.sc.com:5000
sudo scp -r xxx@192.168.31.243:~/registry/certs/registry.crt /etc/docker/certs.d/reg.sc.com:5000
// 测试验证

docker login reg.zimug.com:5000
docker tag busybox reg.zimug.com:5000/busybox:1.0
docker push reg.carson.com:5000/busybox:1.0

搭建UI

请参考docer-hub docker-registry-frontend

参考

http://www.tuicool.com/articles/vMZZveM

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部