四时宝库

程序员的知识宝库

Docker镜像管理(二)(docker镜像采用什么管理方式)

在《Docker镜像管理(一)》中介绍了使用Docker Hub来管理你的Docker镜像,小伙伴们在创建仓库时,细心的同学可能已经发现再次创建private类型的仓库时,不能创建了,如下图:

从上图中可以看出,Private单选钮变成灰色,虽然Create按钮能点击,但怎么也创建不了仓库了。Public单选钮上面多了一行红色的字:Using 1 of 1 private repositories. Get more

这说明免费的午餐吃完了!点击Get more后发现Docker Hub的私有仓库只能免费建一个,再次需要收费了!!不差钱的小伙伴可以购买。

本文简述另一种管理Docker镜像的方法:通过Docker registry2.0建立自己的私有仓库。该仓库是一个无状态、高可用、可扩展的服务器端应用程序,存储并能分发Docker镜像。有如下的好处:

1. 可以严格控制镜像的存储位置

2. 完全拥有镜像分发渠道

3. 可将镜像存储和分发紧密集成到内部开发工作流中

Docker Registry 2.0已经可以满足大部分开发需求,尽管它不包含界面、用户管理、权限控制等功能。如果想要更好的功能,可使用Docker Trusted Registry(DTR)。DTR是一种商业产品,它支持完整的镜像管理工作流,具有LDAP集成、镜像签名、安全扫描以及与通用控制平面的集成。

本文将以Docker Registry 2.0为例,简述其镜像管理方法。

安装要求

Docker Engine 1.6.0或更高版本

搭建Registry

docker run -d -p 5000:5000 --restart=always --name registry registry:2

从下图可以看出,Registry作为一个Docker容器在运行了,并提供管理镜像的服务。

重命名镜像

本地镜像可以是自己构建的镜像也可以是从Docker Hub中拉取的镜像。推送镜像(即将本地镜像发布到上述建立的镜像仓库registry中)前,需要给镜像打下Tag。执行如下Docker命令:

docker tag szroy/my-test-repo:v0.0.1 localhost:5000/szroy/my-test-repo1

推送镜像

执行如下Docker命令:

docker push localhost:5000/szroy/my-test-repo1

拉取镜像

为了验证拉取镜像,先将本地镜像删除后,再拉取。执行如下命令:

docker pull localhost:5000/szroy/my-test-repo1

或从另外一台装有Docker的机器上拉取镜像,执行如下命令:

docker pull localhost:5000/szroy/my-test-repo1

注意:需将上述命令中localhost要用registry所在的服务器的IP地址代替。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接