docker registry(私有仓库)

1.从公有仓库中下载镜像比较慢 ,比如docker run执行一个命令假设本地不存在的镜像,则会去共有仓库进行下载。 2.如果要是2台机器之间进行拷贝,则拷贝的是完整的镜像更消耗空间。 3.如果1个机器上传私有仓库,其他机器均可使用私有仓库的镜像,比较快。 缺点: 1.因为没有认证,谁都可以对私有仓库进行上传和下载,重点是还能够将别人上传的镜像进行覆盖,导致镜像失去了原来的属性,最好放在内网进行使用。 在这里插入图片描述

创建私有仓库

为了方便,我这边直接将仓库镜像上传宿主机上 在这里插入图片描述

导入镜像

docker load -i registry.tar.gz

在这里插入图片描述

##普通的registry,创建启动私有仓库

#--restart=always 表示:无论docker是否重启,容器都会启动
#-v 表示:宿主机路径挂载到容器路径
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry  registry

在这里插入图片描述

上传镜像到私有仓库

a:给镜像打标签

#如果要是私有仓库就自己使用的话,就不需要加名字,直接镜像名称即可
docker tag alpine:latest 192.168.111.10:5000/quyunlong/alpine:latest

b:上传镜像

docker push 192.168.111.10:5000/quyunlong/alpine:latest

上传镜像成功到私有仓库 在这里插入图片描述

上传镜像到私有仓库,如果遇到报错(报错意思就是人家是https的,你上传是http的,不信任):

The push refers to repository [192.168.111.10:5000/quyunlong/alpine]
Get "https://192.168.111.10:5000/v2/": http: server gave HTTP response to HTTPS client

在这里插入图片描述

解决方法:

#添加信任
vim  /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.111.10:5000"]
}


#重启docker
systemctl restart docker

注意,如果要是daemon.json配置文件中有多个配置则需要逗号进行分隔 在这里插入图片描述

从浏览器上访问http://192.168.111.10:5000/v2/_catalog能看到自己上传的镜像 在这里插入图片描述

根据获取的信息进行查看上传的镜像版本 http://192.168.111.10:5000/v2/quyunlong/alpine/tags/list 在这里插入图片描述