主流私有仓库
docker-registry:轻量级,不占用内存
harbor:至少2G内存,企业主流
1.1 部署docker-registry及上传镜像
docker pull registry #下载镜像
mkdir /oldboyedu/registry #创建目录
docker container run -d -p 5000:5000 --restart=always --name oldboyedu-image-registory -v /oldboyedu/registry:/var/lib/registry registry
#启动 registry 私有仓库镜像,默认情况下,仓库会被创建在容器的 /var/lib/registry 目录下。
#你可以通过 -v 参数来将镜像文件存放在本地的指定路径。
192.168.4.7:5000/v2/_catalog #查看私有仓库(真机上访问)
docker image tag alpine:latest 192.168.4.7:5000/oldboyedu-linux-alpine:latest #为镜像打标签上传到私有仓库(由于在标签指定了镜像仓库,不指定默认官方仓库),
#打标签之后会产生另一个因引用而产生的镜像,两个镜像ID是一样的,要删除引用的话删除镜像名+标签。
vim /etc/docker/daemon.json #添加信任仓库,默认协议是https,而私有仓库是http协议(下载的话,需要多个容器都要添加,识别不同协议)
末尾添加一行 "insecure-registries": ["192.168.4.7:5000"] #注意上一句结尾的逗号,和本行空格
systemctl restart docker #重启docker
docker image push 192.168.4.7:5000/oldboyedu-linux-alpine:latest #推送到私有仓库
192.168.4.7:5000/v2/_catalog #查看私有仓库(真机上访问)已上传
1.2删除上传的镜像文件
cd /oldboyedu/registry/ #之前映射的存储磁盘路径
ls docker/registry/v2/repositories/ #查看已有容器
rm -rf docker/registry/v2/repositories/容器名 #删除容器
du -sh docker/registry/v2/repositories #大小无变化,数据信息还未删除
docker container exec 容器名 registry garbage-collect /etc/docker/registry/config.yml #进入到 registry 容器中(但是不进入)回收无用文件元数据信息
#registry garbage-collect /etc/docker/registry/config.yml #回收无用无用文件元数据信息
du -sh docker/registry/v2/repositories #大小有变化,数据信息全部删除
2、hub官方仓库
docker login #登录docker仓库(用户名及密码,不支持中文)
docker image tag 镜像名:标签 changyin/test:v1 #给镜像打标签分类区别
docker image push changyin/test:v1 #推送到自己注册的官方地址
官方查看镜像,上传的镜像会被压缩大小
docker logout #登出docker仓库
删除镜像如下图