centos6.7中怎么搭建docker私有仓库,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1 仓库配置https认证
cd /etc/docker/
mkdir certs
[root@docker01 docker]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/docker01.key -x509 -days 365 -out certs/docker01.crt
填好相应的简称及email即可
2 运行registry容器
[root@docker01 docker]# docker run -d -P -it \
-p 5000:5000 --restart=always \
--name registry -v `pwd`/certs:/etc/docker/certs/ \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/etc/docker/certs/docker01.crt \
-e REGISTRY_HTTP_TLS_KEY=/etc/docker/certs/docker01.key registry
3 配置客户端docker02
mkdir -p /etc/docker/certs.d/docker01:5000
scp docker01:/etc/docker/certs/docker01.crt /etc/docker/certs.d/docker01:5000/ca.crt
查看镜像
[root@docker02 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
swarm latest 8eadaf3525b0 2 weeks ago 15.77 MB
上传镜像
docker tag swarm docker01:5000/swarm
[root@docker02 docker]# docker push docker01:5000/swarm
docker01想上传数据同样需要配置证书,同docker02
4 鉴权管理
将以上的registry容器删除干净,包括仓库的本地文件
还是在/etc/docker目录下操作
mkdir auth
docker run --entrypoint htpasswd registry -Bbn bsoft bsoft > auth/htpasswd
[root@docker01 docker]# docker run -d -p 5000:5000 --restart=always \
--name registry -v `pwd`/certs:/etc/docker/certs/ \
-v `pwd`/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v `pwd`/data:/var/lib/registry \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/etc/docker/certs/docker01.crt \
-e REGISTRY_HTTP_TLS_KEY=/etc/docker/certs/docker01.key \
registry
启动后即可push,push不仅需要证书还要输入用户、密码和邮箱,而pull只需要有证书即可
注意pull的时候需要带上版本号,而curl查看是看不到版本号的
curl查看:
curl --cacert /etc/docker/certs/docker01.crt --basic --user bsoft:bsoft https://docker01:5000/v2/_catalog
curl --cacert /etc/docker/certs.d/docker01:5000/ca.crt --basic --user bsoft:bsoft https://docker01:5000/v2/_catalog
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。