Docker学习总结之docker创建私有仓库(private Repositories)

Docker 创建 Private Repositories

  前言

    基于GFW的缘故,国内大陆基本无法pull国外的镜像,更别说官方的index了。如果images无法pull下来,那么docker就失去了存在的意义,就更别提国内广大程序猿为docker而献身奋斗了。所以基于此,笔者认为有必要国内用户自行搭建一个Private Repositories。一方面为了更好的研究,使用Docker。另一方面也是为了节省pull和push的时间,要不然动不动就是几十分钟的耗时,谁能承担起这些时间成本。最后一点,也是为了可以更好的管理images,毕竟国内很过公司出于各种目的还是不希望公开这些images。

    所以基于此,创建一个Private Repository就显得尤为必要了。

  步骤

  方法一:

    最简单的方法莫过于直接pull下来,docker官网提供的registry镜像了。但是需要说明的是官网目前提供的最新版本不稳定,有bug(笔者目前看到的最新版本为0.8.1,所有版本可以在https://registry.hub.docker.com/_/registry/tags/manage/查看)。而且下面各国网友也反映了,0.8.1的确存在问题。因此,笔者经过多次评测,选取了最稳定的0.7.1版本。

    执行以下命令既可完成private repository的创建:

docker run -d -p 5000:5000 --name registry registry:0.7.1

  方法二:

    使用git上面的源码进行创建。

    首先登陆到docker在git上面的源码页面,https://registry.hub.docker.com/_/registry/ 。

    因为目前最新的0.8.1版本存在bug,因此我们需要tag为0.7.1的版本。在页面上部选择tag 0.7.1即可。

    考虑到国内的网速,所以建议直接下载zip压缩包。在页面右侧,选择Download ZIP。把0.7.1版本下载下来。

    将ZIP压缩包上传到服务器(推荐使用Ubuntu),解压后即为Docker 源码。

    我们下面的步骤是安装registry到本地服务器上,你也可以选择将source build成image,然后执行image。

    安装registry到本地服务器的步骤:

    Install the system requirements for building a Python library:

sudo apt-get install build-essential python-dev libevent-dev python-pip liblzma-dev

    Then install the Registry app:

sudo pip install docker-registry

    等待安装完成后,执行命令开始运行registry:

gunicorn --access-logfile - --debug -k gevent -b 0.0.0.0:5000 -w 1 docker_registry.wsgi:application

  方法三:

    同样基于git的源码,我们build成image,然后执行这个image。

    在docker_registry目录里面:

docker build -t registry .

    build执行完之后,同样执行:

docker run -d -p 5000:5000 registry

  总结

    方法一和方法三,均需要download 国外的一些images,因此国内的使用存在局限性。而方法二,完全不依赖国外数据,但需要一些docker操作基础和git操作基础。

    大家在使用时,就需要考虑实际情况来选择安装方式了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SAP最佳业务实践

SAP最佳业务实践:使用看板的生产制造(233)-7经典看板:用于库存调拨的看板(精益仓库管理)

当你打算在没有前期预留需求时做库存调拨,可以通过将看板置空来自动地触发物料R233-1的库存调拨。 1、PK13N将可用看板设置为 “空” 在此活动中,将可用看...

4115
来自专栏Rainbond开源「容器云平台」

【Docker】Docker学习记录: Shipyard+Swarm+Consul+Service Discover 搭建教程

2246
来自专栏liulun

基于QT的webkit与ExtJs开发CB/S结构的企业应用管理系统

一:源起 1.何为CB/S的应用程序     C/S结构的应用程序,是客户端/服务端形式的应用程序,这种应用程序要在客户电脑上安装一个程序,客户使用这个程序与...

4098
来自专栏为了不折腾而去折腾的那些事

使用 Docker 和 Node 快速实现一个在线的 QRCode 解码服务

本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

770
来自专栏Albert陈凯

2018-10-09 lombok 生产环境报错SEVERE: Unable to process Jar entry [module-info.class] from Jar [jar:fil...

老师您好,课程里面用的lombok,感觉很方便,我就在我写的一个测试项目里面也用的这个。在idea里面用tomcat是可以正常运行的。但是打好包以后,放到服务器...

4.6K2
来自专栏达摩兵的技术空间

mac总是卡死折腾记

如果你确认你mac是硬件ok,但是在某些程序运行的时候导致内存飙升,比如最明显吃内存的chrome,这时候可能就是你内存分配的一些问题,近期我就根据apple ...

1414
来自专栏程序员互动联盟

【专业技术】Android 启动性能优化 - uboot篇

时间测量 在mx51平台的uboot里,使用get_timer可以获得比较精确的计时,get_timer的使用贯穿了uboot性能调整的整个过程。 性能优化方法...

4408
来自专栏刺客博客

CentOS 7 一键安装桌面环境(可远程RDP连接)

为您的Linux系统运行Windows应用程序。脚本自动帮你安装Wine X64和X86,现在可以在Linux上运行Windows应用程序。例如:Tele...

2.1K5
来自专栏吴伟祥

Linux 远程登录:Xshell、SecureCRT、Putty

       Alt + Enter -- 全屏   Alt + B --打开新的连接   Alt + 1/2/3/4/5.../9 -- 切换到第1/2/...

9872
来自专栏皮振伟的专栏

[qemu][io]虚拟化IO latency监控

前言: Linux的很多监控组件,主要针对IOPS和IO带宽进行监控。很多业务场景下,希望对IO的延迟做监控。单纯的await并不能反映出来IO的延迟具体情况。...

2022

扫码关注云+社区

领取腾讯云代金券