美文网首页@IT·互联网程序员
docker私有仓库registry的搭建

docker私有仓库registry的搭建

作者: 03b222cf1c46 | 来源:发表于2017-04-26 15:05 被阅读445次

关于registry

官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但有时我们需要拥有一个私有的镜像仓库用于管理我们自己的镜像。此时可以通过开源软件registry来达成目的。官方在Docker hub上提供了registry的镜像(详情),我们可以直接使用该registry镜像来构建一个容器,搭建我们自己的私有仓库服务。

registry部署搭建

  1. 下载registry镜像,此处我们拉取的版本为当前最新的2.6.1
    docker pull registry:2.6.1
  2. 根据下载的镜像创建并运行一个容器
    docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --name registry registry:2.6.1
    -p选项用于将宿主机的端口映射到容器的端口,这样就可以通过宿主机的地址访问容器服务
    -v选项用于将宿主机的目录挂在到容器的目录,便于直接在宿主机上查看上传的镜像
  3. 访问 http://127.0.0.1:5000/v2,出现以下结果则说明registry服务已启动成功
    Paste_Image.png

上传镜像到私有仓库

我的机器上有一个从官方下载的postgresql:9.6.2的镜像,现在将其发布到私有仓库中

  1. 通过docker tag将该镜像标志为要推送到私有仓库
    docker tag 镜像名[:标签] 镜像仓库服务器地址/命名空间/镜像发布名:发布标签
  2. 运行docker push将镜像push到我们的私有仓库中
    docker push 镜像仓库服务器地址/命名空间/镜像发布名:发布标签
    本例中,我们操作如下
    docker tag postgresql:9.6.2 127.0.0.1:5000/firefly/postgresql:9.6.2
    docker push 127.0.0.1:5000/firefly/postgresql:9.6.2
    然后在/data/registry/docker/registry/v2/repositories下看到以命名空间名firefly命名的文件夹,上传的镜像即位于该目录下

删除已经push到本地仓库的镜像。。。

  1. 打开镜像的存储目录,如有-v操作打开挂载目录也可以,删除镜像文件夹
    docker exec <容器名> rm -rf /var/lib/registry/docker/registry/v2/repositories/<镜像名>
  2. 执行垃圾回收操作,注意2.4版本以上的registry才有此功能
    docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml

相关文章

网友评论

    本文标题:docker私有仓库registry的搭建

    本文链接:https://www.haomeiwen.com/subject/sqeizttx.html