1.拉取搭建私有仓库的镜像        

        在搭建docker的私有仓库之前,要先拉取一个官网镜像registry,这个镜像可以帮助我们搭建私有仓库。 通过 docker pull registry 命令,会自动拉取官方最新的registry镜像。

2.启动并验证是否搭建成功

        在拉去成功后我们启动一个容器来运行:

        docker run -id --name=registry -p 5000:5000 registry

        通过这个命令我们指定它的名字为registry,注意我们要用-p分配给它端口号,-p 主机端口号:映射道容器的端口号,可以改成自己想要的端口号。

        等待运行后我们先查看该容器是否在运行:

        docker ps,用该命令看有无该容器,查看有后我们可以去浏览器输入地址来查看我们的私人仓库:        http://私有仓库ip:端口号/v2/_catalog       这里的私人仓库ip是我们linux通过ip addr查看ens33里的ip,例如192.168.100.188。我们访问地址后,如果能看到{"repositories":[]}的字样说明已经成功搭建了私人仓库。

3.修改daemon.json文件

        为了方便使用私人仓库,能上传和拉取镜像,我们需要修改daemon.json文件来信任我们的仓库:

        vim /etc/docker/daemon.json

        通过该命令来修改此文件,我们进入文件内部后,查找到 "insecure-registries": 语句,在里面加一行 "私人仓库ip:端口号" 后保存文件退出就可以了(ip和端口号要改成自己的)。之后我们重启docker服务和registry容器后该配置就生效了。

4.上传镜像到私人仓库

        我们上传镜像要先标记我们要上传的镜像为私有仓库镜像:

        docker tag 要上传的镜像:标签 私有仓库ip:端口号/自己定义的镜像名:标签

        标记后直接用push上传:

        docker push 私有仓库ip:端口号/自己定义的镜像名:标签

        我们可以到  http://私有仓库ip:端口号/v2/_catalog  地址来查看刚上传的镜像

5.从私人仓库拉取镜像

        docker pull私有仓库ip:端口号/自己定义的镜像名:标签

6.删除私人仓库的镜像

        我们先查看自己的仓库有哪些镜像:

        cur http://私有仓库ip:端口号/v2/_catalog

        示例输出:{"repositories":["centos","client","server"]}

        也可以查看镜像的名字和标签:

        curl http://私有仓库ip:端口号/v2/server/tags/list

        示例输出:{"name":"server","tags":["1"]}

        我们用该命令来删除镜像:

        curl -X DELETE http://私有仓库ip:端口号/v2/镜像名/manifests/标签

        在删除之后我们查看它的标签,若是空(示例输出:{"name":"centosr","tags":[]})则说明已经删除了,但仓库里还残留镜像的名字,需要我们手动删除:

     # 进入 Registry 容器内部
        docker exec -it registry /bin/sh

        # 删除 centos 仓库目录(到容器内部操作)
        rm -rf /var/lib/registry/docker/registry/v2/repositories/镜像名

        # 退出并重启 Registry
        exit
        docker restart registry
        
        #验证
        curl http://私有仓库ip:端口号/v2/_catalog

更多推荐