8.Registry 私有镜像仓库

8.0 私有镜像仓库简介
Docker Registry:官方docker镜像存储、管理和分发工具。
部署私有仓库可以解决以下问题:

1) 下载镜像时所带来的网络延时。
2) 方便镜像版本的更新与维护
3)部署私有应用程序

8.1 私有镜像仓库工作流程

1)用户本地构建镜像,将镜像推送到Registry仓库.
2) Docker 用户使用的时候,直接从Registry 下载, 无须从Docker Hub 下载.

8.2 搭建私有仓库

官方提供的私有仓库镜像,无需调整,直接使用。将宿主机目录挂载到容器中,提供数据持久化。
镜像名称:registry,默认使用最新版。

#挂载宿主机/opt/myregistry目录到容器目录/var/lib/registry
[root@docker01 ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry

8.3 上传本地镜像至私有仓库

#给镜像打tag 标签,要写全镜像仓库地址。
[root@master mnt]# docker image tag centos:latest 192.168.91.8:5000/centos7:v1.0

#上传镜像到私有仓库
[root@master mnt]# docker push 192.168.91.8:5000/centos7:v1.0
注:报错
The push refers to repository [192.168.91.8:5000/centos7]
Get https://192.168.91.8:5000/v2/: http: server gave HTTP response to HTTPS client

出现https 错误解决方法有两种:
1) 修改Docker 节点配置文件 (本案例中)
2)添加Nginx 反向代理

解决办法:修改配置文件,建立信任
[root@docker01 ~]# vi /etc/docker/daemon.json
{
"insecure-registries": ["192.168.91.8:5000"]
}

#重启docker 服务
[root@docker01 ~]# systemctl restart docker

#再次推送镜像
[root@master mnt]# docker push 192.168.91.8:5000/centos7:v1.0
The push refers to repository [192.168.91.8:5000/centos7]
0683de282177: Pushing [========> ] 38.8MB/237.1MB

8.4 查看私有仓库镜像列表

[root@master mnt]# curl http://192.168.91.8:5000/v2/_catalog
{"repositories":["centos7"]}

8.5 删除私有仓库中镜像

1)进入docker registry 的容器中
[root@docker01 ~]# docker exec -it registry /bin/sh
2) 删除指定镜像目录文件
/ # rm -fr /var/lib/registry/docker/registry/v2/repositories/centos7
3) 清理掉blob
/ # registry garbage-collect /etc/docker/registry/config.yml
4) 再次查看版本库
[root@master mnt]# curl http://192.168.91.8:5000/v2/_catalog
{"repositories":[]}

 

posted @ 2022-06-04 11:16  从此重新定义啦  阅读(173)  评论(0编辑  收藏  举报