docker入门4:搭建私有库

1.docker  pull registry
https://hub.docker.com/_/registry/

2.启动registry
docker run -d -p 5000:5000 -v /root/dodata:/var/lib/registry --restart=always registry
把一个image名字重新打上新的tag
docker tag hello2:latest 192.168.1.103:5000/hello2:latest

3.重启docker服务加上--insecure-registry
nohup docker -H unix:///var/run/docker.sock --insecure-registry 192.168.1.103:5000 -d &

4.push images到新的registry:docker push 192.168.1.103:5000/hello2

[root@rhel64-64bit dodata]# docker push 192.168.1.103:5000/hello2
The push refers to a repository [192.168.1.103:5000/hello2] (len: 1)
3490818497c9: Image already exists 
83f0de727d85: Image already exists 
882673a3c694: Image successfully pushed 
Digest: sha256:87e0e1a9d821d04ba5e1c1842b5e819d5039a6d2e7cb29eacb7a01af3f671da5
[root@rhel64-64bit hello2]# pwd
/root/dodata/docker/registry/v2/repositories/hello2

curl  http://192.168.1.103:5000/v2/_catalog
[root@rhel64-64bit hello2]# curl  http://192.168.1.103:5000/v2/_catalog
{"repositories":["hello2"]}

curl  http://192.168.1.103:5000/v2/hello2/tags/list
[root@rhel64-64bit hello2]# curl  http://192.168.1.103:5000/v2/hello2/tags/list
{"name":"hello2","tags":["latest"]}

5.删除image
[root@rhel64-64bit hello2]# docker rmi 192.168.1.103:5000/hello2
Untagged: 192.168.1.103:5000/hello2:latest

重新从新的registry拉取镜像:
docker pull 192.168.1.103:5000/hello2

[root@rhel64-64bit hello2]# docker pull 192.168.1.103:5000/hello2
latest: Pulling from 192.168.1.103:5000/hello2
882673a3c694: Already exists 
83f0de727d85: Already exists 
3490818497c9: Already exists 
Digest: sha256:87e0e1a9d821d04ba5e1c1842b5e819d5039a6d2e7cb29eacb7a01af3f671da5
Status: Downloaded newer image for 192.168.1.103:5000/hello2:latest

搭建需要认证的私有库:
1.docker run --entrypoint htpasswd registry -Bbn youser yo123456 > /root/auth/htpasswd

[root@rhel64-64bit ~]# docker run --entrypoint htpasswd registry -Bbn youser yo123456 > /root/auth/htpasswd
[root@rhel64-64bit ~]# cd auth
[root@rhel64-64bit auth]# ll
total 4
-rw-r--r-- 1 root root 69 May 17 00:50 htpasswd

2.把之前的registry的container删除,然后重新启动

docker run -d -p 5000:5000 --restart=always  -v /root/dockdata:/var/lib/registry  -v /root/auth:/auth  -e "REGISTRY_AUTH=htpasswd"  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd  registry 
[root@rhel64-64bit auth]# docker run -d -p 5000:5000 --restart=always  -v /root/dockdata:/var/lib/registry  -v /root/auth:/auth  -e "REGISTRY_AUTH=htpasswd"  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd  registry 
cd31265a6ee34c545611a58918e06f529c37d3238a5b9137ea611e86b20ef424

3.登录私有registry
docker login -u youser -p yo123456 192.168.1.103:5000

root@rhel64-64bit auth]# docker login 192.168.1.103:5000
Username: youser
Password: 
Email: 
WARNING: login credentials saved in /root/.docker/config.json
Login Succeeded

4.push images到私有库

[root@rhel64-64bit auth]# docker push 192.168.1.103:5000/hello2
The push refers to a repository [192.168.1.103:5000/hello2] (len: 1)
3490818497c9: Image already exists 
83f0de727d85: Image already exists 
882673a3c694: Image successfully pushed 
Digest: sha256:87e0e1a9d821d04ba5e1c1842b5e819d5039a6d2e7cb29eacb7a01af3f671da5
[root@rhel64-64bit auth]# 
curl  --basic --user youser:yo123456  http://192.168.1.103:5000/v2/_catalog
[root@rhel64-64bit auth]#  curl  --basic --user youser:yo123456  http://192.168.1.103:5000/v2/_catalog
{"repositories":["hello2"]}
[root@rhel64-64bit auth]#  curl  --basic --user youser:yo123456  http://192.168.1.103:5000/v2/hello2/tags/list
{"name":"hello2","tags":["latest"]}
5.退出:
docker logout 192.168.1.103:5000
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值