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 : --name registry registry:0.7.

  方法二:

    使用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: -w  docker_registry.wsgi:application

  方法三:

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

    在docker_registry目录里面:

docker build -t registry .

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

docker run -d -p : registry

  总结

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

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

Docker学习总结之docker创建私有仓库(private Repositories)的更多相关文章

  1. docker基础——自定义镜像、创建私有仓库、查看 docker 运行状态

    一.自定义镜像 1,案例1 要求:请自定义一个 docker 镜像,基于 hub.c.163.com/library/centos,要求创建出来的镜像在生成容器的时候,可以直接使用 ifconfig ...

  2. docker创建私有仓库

    由于网速和大中华局域网效果,使得我们在DockerHub下载镜像的速度很慢,甚至一些国内的镜像仓库,也感觉速度不是很好.所以,很有必要在本地或者一个我们访问很快速的地方(自己的云服务器)搭建一套镜像仓 ...

  3. Docker学习总结(七)--Docker私有仓库

    创建私有仓库 1) 拉取私有仓库镜像 docker pull registry 2)启动私有仓库容器 docker run -di --name-registry -p 5000:5000 regis ...

  4. docker创建私有仓库及存储image

    Docker官方的Docker hub尽管提供了有非常多image,也基本上包括了我们须要使用的,可是其訪问起来比較慢.假设自己要定制image.多台server之间的共享使用此image非常不方便. ...

  5. Docker容器管理平台Humpback进阶-私有仓库

    Docker私有仓库 在 Docker 中,当我们执行 docker pull xxx 的时候,可能会比较好奇,docker 会去哪儿查找并下载镜像呢? 它实际上是从 registry.hub.doc ...

  6. [python](Docker SDK)上传镜像到私有仓库(tls、身份认证)

    (Docker SDK)上传镜像到私有仓库(tls.身份认证) API:https://docker-py.readthedocs.io/en/stable/ 环境:python:3.7.3 配置参数 ...

  7. docker for mac 创建私有仓库

    拉取镜像 docker pull registry 运行registry run -d -p : -v /Users/huangenai/docker/registry:/var/lib/regist ...

  8. 转 docker创建私有仓库和k8s中使用私有镜像

    docker私有仓库建立 环境说明我们选取192.168.5.2做私有仓库地址yum install docker -y1.启动docker仓库端口服务 docker run -d -p 5000:5 ...

  9. win10 下安装docker,创建镜像,push镜像到私有仓库,创建私有仓库,修改镜像仓库地址

    通过连接下载window docker安装文件,https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.ex ...

随机推荐

  1. PHP中session详解

    SESSION 的数据保存在哪里呢?  当然是在服务器端,但不是保存在内存中,而是保存在文件或数据库中.  默认情况下,PHP.ini 中设置的 SESSION 保存方式是 files(session ...

  2. 【Excle】科学计数法快速还原

    在Excle的单元格中,如果输入大于11位的数字,结果就会以E+形式显示 如果是单个输入的话,只需要把Excle中的单元格格式设置为文本即可,然后输入就不会出现科学计数法,但是有时候是从外部导入的序号 ...

  3. 【Excle】使用&拼接,拼接后复制到文本编辑器存在引号(“”)问题

    1.错误的操作 如下图:拼接 拼接后,复制到文本编辑器: 1.1错误原因 出现上述问题的原因:是由于在拼接字符串的时候, INSERT INTO CST(ID,NAME)values( 上述这段字符& ...

  4. mysql的UNIX_TIMESTAMP用法

    UNIX_TIMESTAMP 一般是用于unix的时间戳. 例子: SELECT UNIX_TIMESTAMP("2016-07-11")-- 1468166400SELECT U ...

  5. 【COCOS2DX-LUA 脚本开发之四】

    使用tolua++编译pkg,从而创建自定义类让Lua脚本使用 本站文章均为李华明Himi原创,转载务必在明显处注明:(作者新浪微博:@李华明Himi ) 转载自[黑米GameDev街区] 原文链接: ...

  6. IIS8应用池重启脚本

    重启 IIS8 应用程序池的批处理 批处理很简单:c:\windows\system32\inetsrv\AppCmd.exe stop apppool /apppool.name:"ASP ...

  7. Junit内部解密之四: Junit单元测试最佳实践

    我们做使用Junit工具来做单页测试或接口测试时,需要注意一些问题,包括我们的编码规范,test规范,以及编写测试代码的策略,以下个人的总结. 1.为还没有实现的测试代码抛出一个异常.这就避免了该测试 ...

  8. iOS 提交应用到appStore报错ITMS-90xxx

    1.ITMS-90535 解决办法:全局文件搜索info.plist 删除掉报错的第三方中的info.plist,再重新打包,注意不要删除自己项目中的info.plist

  9. 一个简单的数据增量更新策略(Android / MongoDB / Django)

    我在做个人APP - CayKANJI - 的时候遇到一个问题: 如何增量式地把日语汉字数据地从server更新到APP端,即每次用户运行更新操作时,仅仅获取版本号高于本地缓存的内容. 数据格式 为了 ...

  10. java程序优化

    程序代码优化要点: 字符串优化:分析String源码,了解String常用方法,使用StringBuffer.StringBuilder. List.Map.Set优化:分析常用ArrayList.L ...