创建远程私有注册表

Posted

技术标签:

【中文标题】创建远程私有注册表【英文标题】:Create a remote private registry 【发布时间】:2014-09-24 01:10:25 【问题描述】:

我们对 docker 还很陌生,但已经能够在 CentOS 6.4 上安装 docker,创建镜像,生成容器,甚至创建私有本地注册表。

我们的问题是关于本地注册表的。嗯......实际上......关于远程注册表。我们希望能够在单独的服务器上创建注册表,而不是将所有内容都放在一个地方。我们在另一个 VM 上安装了 docker 并让它运行,但是在查找有关如何远程访问注册表的文档时遇到了麻烦。

只是寻找一些可以显示远程注册表如何工作的方向或网址。

【问题讨论】:

【参考方案1】:

看看Docker Registry repo - 它是一个独立于 docker 的项目。

他们的 README.md 应该足以让您入门。

【讨论】:

我们实际上找到了可能提供我们需要的信息的站点:cloudcounselor.com/2014/01/07/… 它需要安装 python、git、克隆 docker-registry.git 等。我们将根据您列出的 README 进行检查并发布调查结果。 我想你被指示在该页面上安装的项目的 README.md 将拥有你所需要的一切! 我可能读错了这个 README 文件,但它似乎并没有创建一个仅访问 docker hub 的私有注册表。我们客户的网络已关闭,无法访问外部站点。我们必须在不直接访问 docker-hub 的情况下安装 docker 和 docker-registry。基本上我们可以移动 tar 文件、rpm 等,但不能通过直接下载来创建它们。 你在网络的某处创建一个虚拟机,在上面安装 docker,克隆 docker-registry repo,在配置示例中将你的配置文件更改为 local,构建 docker 镜像(现在使用您的配置),运行 docker 映像。 我们最终没有将注册表创建为 docker 映像,而是作为在 VM 上独立运行的服务(服务 docker-registry 启动)。我们现在可以从包含 docker 的 VM 中标记/推送/拉取。它实际上比配置为 docker 映像更快、更容易。我们下载了所有必需的 RPMS,安装了它们,然后启动了注册表。【参考方案2】:

我们的网络不允许我们访问互联网下载 RPM。我们确定了安装 docker-registry 所需的 RPM,下载了它们,按照必要的顺序将它们放入 shell 脚本中以消除依赖问题,安装 RPM,然后启动服务——“service docker-registry start”。

这不会将注册表创建为 docker 映像,而是将其创建为独立服务——甚至不知道为什么人们似乎认为将注册表作为 docker 映像更可取……似乎增加了一层不必要的抽象。

下面是带有“正确”顺序的 RPM 列表的 shell 脚本。执行后,运行“service docker-registry start”。

rpm -ivh epel-release-6-8.noarch.rpm
rpm -ivh python-setuptools-0.6.10-3.el6.noarch.rpm
rpm -ivh python-pip-1.3.1-4.el6.noarch.rpm
rpm -ivh --force --nodeps glibc-2.12-1.132.el6.x86_64.rpm
rpm -ivh --force glibc-common-2.12-1.132.el6.x86_64.rpm
rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
rpm -ivh kernel-headers-2.6.32-431.el6.x86_64.rpm
rpm -ivh glibc-headers-2.12-1.132.el6.x86_64.rpm
rpm -ivh glibc-devel-2.12-1.132.el6.x86_64.rpm
rpm -ivh libgomp-4.4.7-4.el6.x86_64.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm
rpm -ivh libyaml-0.1.6-1.el6.x86_64.rpm
rpm -ivh PyYAML-3.10-3.el6.x86_64.rpm
rpm -ivh libevent-1.4.13-4.el6.x86_64.rpm
rpm -ivh python-babel-0.9.4-5.1.el6.noarch.rpm
rpm -ivh python-greenlet-0.4.2-1.el6.x86_64.rpm
rpm -ivh python-gevent-0.13.8-3.el6.x86_64.rpm
rpm -ivh python-gunicorn-18.0-1.el6.noarch.rpm
rpm -ivh python-jinja2-2.2.1-2.el6_5.x86_64.rpm
rpm -ivh python-markupsafe-0.9.2-4.el6.x86_64.rpm
rpm -ivh python-jinja2-26-2.6-3.el6.noarch.rpm
rpm -ivh python-werkzeug-0.8.3-2.el6.noarch.rpm
rpm -ivh python-flask-0.9-7.el6.noarch.rpm
rpm -ivh python-backports-1.0-3.el6.x86_64.rpm
rpm -ivh python-backports-ssl_match_hostname-3.4.0.2-1.el6.noarch.rpm
rpm -ivh python-ordereddict-1.1-2.el6.noarch.rpm
rpm -ivh python-six-1.7.3-1.el6.noarch.rpm
rpm -ivh python-urllib3-1.5-7.el6.noarch.rpm
rpm -ivh python-chardet-2.0.1-1.el6.noarch.rpm
rpm -ivh python-requests-1.1.0-4.el6.noarch.rpm
rpm -ivh python-redis-2.0.0-1.el6.noarch.rpm
rpm -ivh python-blinker-1.1-1.el6.noarch.rpm
rpm -ivh python-simplejson-2.0.9-3.1.el6.x86_64.rpm
rpm -ivh pyliblzma-0.5.3-3.el6.x86_64.rpm
rpm -ivh python-backports-lzma-0.0.2-5.el6.x86_64.rpm
rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm
rpm -ivh --force --nodeps python-lxml-2.2.3-1.1.el6.x86_64.rpm

rpm -ivh python-prettytable-0.7.2-1.el6.noarch.rpm
rpm -ivh python-httplib2-0.7.7-1.el6.noarch.rpm
rpm -ivh python-sqlalchemy-0.5.5-3.el6_2.noarch.rpm
rpm -ivh python-argparse-1.2.1-2.el6.noarch.rpm
rpm -ivh python-keystoneclient-0.2.0-3.el6.noarch.rpm
rpm -ivh python-importlib-1.0.2-1.el6.noarch.rpm
rpm -ivh python-jsonschema-2.3.0-1.el6.noarch.rpm
rpm -ivh python-warlock-0.4.0-2.el6.noarch.rpm
rpm -ivh python-boto-2.27.0-1.el6.noarch.rpm
rpm -ivh pyOpenSSL-0.10-2.el6.x86_64.rpm
rpm -ivh python-glanceclient-0.8.0-2.el6.noarch.rpm
rpm -ivh redis-2.4.10-1.el6.x86_64.rpm
rpm -ivh python-rsa-3.1.1-5.el6.noarch.rpm
rpm -ivh docker-registry-0.7.1-2.el6.noarch.rpm

【讨论】:

以上是关于创建远程私有注册表的主要内容,如果未能解决你的问题,请参考以下文章

如何远程访问私有 docker-registry?

从 Github 包注册表安装私有包失败,未找到/未授权

docker创建私有仓库

远程注册表项提取程序PowerShell脚本

usbredirector怎么远程连接

Docker 私有注册表问题