您的位置:首页 > 运维架构 > Docker

Docker私有仓库搭载教程

2016-10-20 14:37 176 查看

#Docker私有仓库搭载教程

最近领导叫我搭一个公司内部使用的镜像库,在网上找了各种资料,遇到了不少问题,东拼西凑最后可算是可以了。把自己建仓库的过程总结一下,分享一下,帮助一下和我一样的新手

本教程所有内容均基于CentOS 7, 使用其他发行版的朋友,注意一下几个文件的位置,其他一般都ok

##下载 source 并生成 certificates

安装
openssl
git


# yum install -y openssl git


修改
openssl
配置文件
openssl.cnf
(自己在机子上全局搜索一下吧,不同的系统不一样的)

添加
subjectAltName = IP:[hostip]
[ v3_ca ]
标签下(
hostip
是机子的ip)

...
[ v3_ca]
subjectAltName = IP:[hostip]
...


下载
Registry
源码

# git clone https://github.com/docker/distribution.git ./distribution


进入
distribution
目录

# cd distribution


新建
certs
子目录

# mkdir certs


使用SSL生成自签名证书

# openssl req \
-newkey rsa:2048 -nodes -keyout certs/domain.key \

-x509 -days 365 -out certs/domain.crt


此命令将提示你回答一些基本信息,用于创建证书,可选择不填

可以把domain换成你想要的名字

当你构建这个 Container 时,
certs
目录及其内容也会自动被复制

##将 TLS 加入配置

编辑
./cmd/registry/config-dev.yml
文件(具体要视Dockerfile而定,旧一点的
Registry
版本也会是config.yml)

# vi ./cmd/registry/config-dev.yml


定位到
http
区块

http:
addr: :5000
debug:
addr: localhost:5001
headers:
X-Content-Type-Options: [nosniff]


给服务器的自签名证书新增一个
tls
区块

http:
addr: :5000
debug:
addr: localhost:5001
headers:
X-Content-Type-Options: [nosniff]tls:
certificate: /go/src/github.com/docker/distribution/certs/Arges.crt
key: /go/src/github.com/docker/distribution/certs/Arges.key


保存关闭文件

##构建并运行 Registry 镜像

构建你的 Registry 镜像

# docker build . -t secure_registry


运行镜像

# docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /opt/data/registry:/tmp/registry  -p 5000:5000 secure_registry


##解决ssl认证问题

certs
文件夹下
*.crt
文件发送给要推送镜像的主机

domain.crt
加入到
/etc/pki/tls/certs/ca-bundle.crt
内 (和系统有关,不一定在这个位置,不确定的话就搜索一下)

# cat domain.crt >> /etc/pki/tls/certs/ca-bundle.crt

重启docker

# systemctl restart docker

大致就这样了,有什么问题尽管提问,虽然我不一定会

参考资料: 部署 Docker Registry 服务
搭建docker-registry时使用自签名ssl证书认证问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: