Docker私有仓库Registry的搭建验证

1. 关于Registry

可以参考:http://www.cnblogs.com/lienhua34/p/4922130.html

 

官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像。这个可以通过开源软件Registry来达成目的。

 Registry在github上有两份代码:老代码库新代码库。老代码是采用python编写的,存在pull和push的性能问题,出到0.9.1版本之后就标志为deprecated,不再继续开发。从2.0版本开始就到在新代码库进行开发,新代码库是采用go语言编写,修改了镜像id的生成算法、registry上镜像的保存结构,大大优化了pull和push镜像的效率。

 官方在Docker hub上提供了registry的镜像(详情),我们可以直接使用该registry镜像来构建一个容器,搭建我们自己的私有仓库服务。Tag为latest的registry镜像是0.9.1版本的,我们直接采用2.1.1版本。

2. Registry的部署

1、 运行命令获取registry镜像

   $ sudo docker pull registry:2.1.1

 

2、 然后启动一个容器

   $ sudo docker run -d -v /opt/registry:/var/lib/registry -p 4321:5000 --restart=always --name registry registry:2.1.1

 

 

讲解:docker run:镜像启动

看不清的看这张图

Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。

3、 运行下面命令查看容器

 $ sudo docker ps  

 

说明我们已经启动了registry服务,打开浏览器输入http://IP:4321/v2,出现下面情况说明registry运行正常(如果有被占用,就改4321为其他

 

3. 验证

   现在我们通过将镜像push到registry来验证一下。

我的docker上有个hello-world的镜像,我们要通过docker tag将该镜像标志为要推送到私有仓库,

  1$ sudo docker images


2$ sudo docker tag hello-world 127.0.0.1:4321/hello-world

3、然后查看下本地的镜像 sudo docker images


接下来,我们运行docker pushhello-world镜像push到我们的私有仓库中

4$ sudo docker push 127.0.0.1:4321/hello-world

 

 

 

 

现在我们可以查看我们本地/opt/registry目录下已经有了刚推送上来的hello-world。我们也在浏览器中输入http://IP:4321/v2/_catalog,如下图所示

 

 

现在我们可以先将我们本地的127.0.0.1:4321/hello-worldhello-world先删除掉

$ sudo docker rmi hello-world

$ sudo docker rmi 127.0.0.1:4321/hello-world


$ sudo docker images    

来查看是否删除成功

 

 

然后使用docker pull从我们的私有仓库中获取hello-world镜像

$ sudo docker pull 127.0.0.1:4321/hello-world

 

在查看下本地镜像就会发现我们镜像中已经存在127.0.0.1:4321/hello-world

$ sudo docker images

 

4、可能问题(没问题就不用管这里)

       可能会出现无法push镜像到私有仓库的问题。这是因为我们启动的registry服务不是安全可信赖的。这是我们需要修改docker的配置文件/etc/default/docker,添加下面的内容,

    DOCKER_OPTS="--insecure-registry xxx.xxx.xxx.xxx:4321"

然后重启docker后台进程,

sudo service docker restart

这时在push即可   (重启docker后,所有的容器都会被关闭,所以慎重)

 

知识点提示:

如果容器没停止运行就先把他停止运行  sudo docker stop 容器ID
然后sudo docker ps -a 查看所有容器,找到你需要删除的那个 
sudo docker rm 容器ID,接着 sudo docker images 查看所有镜像,找到你需要删除的那个  sudo docker rmi 镜像ID

 

这是删除镜像

 

 

 Docker私有仓库Registry的搭建验证就完成了。

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值