docker私有仓库搭建及使用配置

1、下载官方registry镜像

[root@localhost docker]# docker pull registry
Using default tag: latest
latest: Pulling from library/registry
c87736221ed0: Pull complete 
1cc8e0bb44df: Pull complete 
54d33bcb37f5: Pull complete 
e8afc091c171: Pull complete 
b4541f6d3db6: Pull complete 
Digest: sha256:8004747f1e8cd820a148fb7499d71a76d45ff66bac6a29129bfdbfdc0154d146
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest

2、启动镜像

[root@localhost docker]# docker run --name=registry -v /opt/registry:/var/lib/registry -p 5000:5000  --restart=always -d registry
fcfb93b71d31455126e65435d017b8bed08c880c274a10fb74d76dd84db4ad6d
#Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。restart=always实现重启服务后自动运行。
[root@localhost docker]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
fcfb93b71d31        registry            "/entrypoint.sh /etc…"   8 seconds ago       Up 7 seconds        0.0.0.0:5000->5000/tcp   registry

#测试如果看到{"repositories":[]} 表示私有仓库搭建成功

[root@localhost docker]# curl -X GET http://192.168.14.121:5000/v2/_catalog
{"repositories":[]}
[root@localhost docker]# 

3、上传镜像

#将镜像重新标签tag名称
[root@localhost docker]# docker tag centos 192.168.14.121:5000/centos
#上传出错,默认情况下,该仓库是使用http去访问的,而docker客户端使用的是https去访问
[root@localhost docker]# docker push 192.168.14.121:5000/centos
The push refers to repository [192.168.14.121:5000/centos]
Get https://192.168.14.121:5000/v2/: http: server gave HTTP response to HTTPS client

4、修改docker 配置/etc/docker/daemon.json ,文件不存在则直接创建

{
"registry-mirror": ["https://registry.docker-cn.com"],
 "insecure-registries": ["192.168.14.121:5000"]"graph": "/u01/docker"
}

上面配置依次代表的是镜像加速,私有仓库地址,docker镜像存储位置。

5、重启docker,重新上传镜像

[root@localhost docker]#systemctl restart docker
[root@localhost docker]# docker start registry
[root@localhost docker]# more /etc/docker/daemon.json
{ "insecure-registries":["192.168.14.121:5000"] }
[root@localhost docker]# docker push 192.168.14.121:5000/centos
The push refers to repository [192.168.14.121:5000/centos]
0683de282177: Pushed 
latest: digest: sha256:16d100b99449b0b672e13ad606067cf55cdb34790d234360e4bf8b647c23590d size: 529
#可以看到上传成功,多了一个centos的镜像
[root@localhost docker]# curl -X GET http://192.168.14.121:5000/v2/_catalog
{"repositories":["centos"]}
#查看镜像标签
[root@localhost docker]# curl -XGET http://192.168.14.121:5000/v2/centos/tags/list
{"name":"centos","tags":["latest"]}

6、删除镜像

1、开启删除数据功能:增加
delete:
enabled: true

[root@dcyhdocker ~]#docker exec -it registry sh
/ # vi /etc/docker/registry/config.yml
version: 0.1
log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3
delete:
enabled: true

2、删除镜像文件

/ #cd /var/lib/registry/docker/registry/v2/repositories
/var/lib/registry/docker/registry/v2/repositories # ls
centos7.7     weblogic12.2
/var/lib/registry/docker/registry/v2/repositories # rm -rf weblogic12.2/

3、同步垃圾回收。

/ # registry garbage-collect /etc/docker/registry/config.yml
centos7.7
centos7.7: marking manifest sha256:aecd8c6b927496b188450bd64c2114b9dbd317f740831785520ded0bcf14217c 
centos7.7: marking blob sha256:2e26bbd2f7977dd5465a462263613e7bd9ed1f79da5a0c0795c78f1a7a9e72b1
centos7.7: marking blob sha256:d061de1e5be32467dab87daf3d81c300baf84232f1d6940d9a0ab43c7c6a9634

3 blobs marked, 4 blobs and 0 manifests eligible for deletion
blob eligible for deletion: sha256:98a83165b74d9adaf2015386c0d4aebe0093cee515e2d4413caac96195dd15ea
INFO[0000] Deleting blob: /docker/registry/v2/blobs/sha256/98/98a83165b74d9adaf2015386c0d4aebe0093cee515e2d4413caac96195dd15ea  go.version=go1.11.2 instance.id=90fbf49e-749b-4a9d-8801-69592e48a482 service=registry
blob eligible for deletion: sha256:c3d10f7d3a12fb26aa5ba320a2426b957db925ae916c8f201f7febf66076d388
INFO[0000] Deleting blob: /docker/registry/v2/blobs/sha256/c3/c3d10f7d3a12fb26aa5ba320a2426b957db925ae916c8f201f7febf66076d388  go.version=go1.11.2 instance.id=90fbf49e-749b-4a9d-8801-69592e48a482 service=registry
blob eligible for deletion: sha256:ed9bcff9290b948a5946f91ac469a3205a63b01a0575a33adec045b10ff3a420
INFO[0000] Deleting blob: /docker/registry/v2/blobs/sha256/ed/ed9bcff9290b948a5946f91ac469a3205a63b01a0575a33adec045b10ff3a420  go.version=go1.11.2 instance.id=90fbf49e-749b-4a9d-8801-69592e48a482 service=registry
blob eligible for deletion: sha256:1427933e99499be8893b12fa0455690a7500beaecf3ea745bdd70baf51a315c1
INFO[0000] Deleting blob: /docker/registry/v2/blobs/sha256/14/1427933e99499be8893b12fa0455690a7500beaecf3ea745bdd70baf51a315c1  go.version=go1.11.2 instance.id=90fbf49e-749b-4a9d-8801-69592e48a482 service=registry
/ # 

4、重启容器
如果不重启镜像仓库,则再次push该镜像时可能会得到layer already exists错误:

[root@dcyhdocker ~]# docker stop 5f0e7f21e467
[root@dcyhdocker ~]# docker start 5f0e7f21e467

参考:https://blog.csdn.net/u013197629/article/details/82879096
参考:https://www.cnblogs.com/gcgc/p/10489385.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值