搭建一个私有的Docker registry
2016-10-20 14:32
645 查看
[TL;DR] 这是系列的第二篇文章,这系列讲述了我的公司如何把基础服务从PaaS迁移到Docker上第一篇文章: 我谈到了接触Docker之前的经历;
第三篇文章: 我展示如何使创建镜像的过程自动化以及如何用Docker部署一个Rails应用。
为什么需要搭建一个私有的registry呢?嗯,对于新手来说,Docker Hub(一个Docker公共仓库)只允许你拥有一个免费的私有版本库(repo)。其他的公司也开始提供类似服务,但是价格可不便宜。另外,如果你需要用Docker部署一个用于生产环境的应用,恐怕你不希望将这些镜像放在公开的Docker Hub上吧!这篇文章提供了一个非常务实的方法来处理搭建私有Docker registry时出现的各种错综复杂的情况。我们将会使用一个运行于DigitalOcean(之后简称为DO)的非常小巧的512MB VPS 实例。并且我会假定你已经了解了Docker的基本概念,因为我必须集中精力在复杂的事情上!
如果一切顺利(想要了解搭建docker环境的完整指南,请参阅 http://boot2docker.io/) ,你现在就能够通过如下命令启动一个 Docker 运行于其中的虚拟机:
按照屏幕显示的说明,复制粘贴book2docker在终端输出的命令。如果你现在运行
好了,Docker已经准备就绪,这就够了,我们回过头去搭建registry。
你将会以邮件的方式收到一个根用户凭证。登录进去,然后运行
点击 Create Bucket,为你的桶输入一个名字(把它记下来,我们一会需要用到它),然后点击Create。
OK!我们已经搭建好存储部分了。
在dashboard的左边,点击Users。然后选择 Create New Users。如图所示:
输入一个用户名(例如 docker-registry)然后点击Create。写下(或者下载csv文件)你的Access Key以及Secret Access Key。回到你的用户列表然后选择你刚刚创建的用户。在Permission section下面,点击Attach User Policy。之后在下一屏,选择Custom Policy。
custom policy的内容如下:
这个配置将允许用户(也就是regitstry)来对桶上的内容进行操作(读/写)(确保使用你之前创建AWS S3时使用的桶名)。总结一下:当你想把你的Docker镜像从你的本机推送到仓库中时,服务器就会将他们上传到S3。
via: http://cocoahunter.com/2015/01/23/docker-2/作者:Michelangelo Chasseur 译者:DongShuaike 校对:wxy本文由 LCTT 原创翻译,Linux中国 荣誉推出
查看原文:http://www.zoues.com/2016/10/20/%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e7%9a%84docker-registry/
第三篇文章: 我展示如何使创建镜像的过程自动化以及如何用Docker部署一个Rails应用。
为什么需要搭建一个私有的registry呢?嗯,对于新手来说,Docker Hub(一个Docker公共仓库)只允许你拥有一个免费的私有版本库(repo)。其他的公司也开始提供类似服务,但是价格可不便宜。另外,如果你需要用Docker部署一个用于生产环境的应用,恐怕你不希望将这些镜像放在公开的Docker Hub上吧!这篇文章提供了一个非常务实的方法来处理搭建私有Docker registry时出现的各种错综复杂的情况。我们将会使用一个运行于DigitalOcean(之后简称为DO)的非常小巧的512MB VPS 实例。并且我会假定你已经了解了Docker的基本概念,因为我必须集中精力在复杂的事情上!
本地搭建
首先你需要安装boot2docker以及docker CLI。如果你已经搭建好了基本的Docker环境,你可以直接跳过这一步。从终端运行以下命令(我假设你使用OS X,使用 HomeBrew 来安装相关软件,你可以根据你的环境使用不同的包管理软件来安装):brew install boot2docker docker
如果一切顺利(想要了解搭建docker环境的完整指南,请参阅 http://boot2docker.io/) ,你现在就能够通过如下命令启动一个 Docker 运行于其中的虚拟机:
boot2docker up
按照屏幕显示的说明,复制粘贴book2docker在终端输出的命令。如果你现在运行
docker ps命令,终端将有以下显示。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
好了,Docker已经准备就绪,这就够了,我们回过头去搭建registry。
创建服务器
登录进你的DO账号,选择一个预安装了Docker的镜像文件,创建一个新的Drople。(本文写成时选择的是 Image > Applications > Docker 1.4.1 on 14.04)你将会以邮件的方式收到一个根用户凭证。登录进去,然后运行
docker ps命令来查看系统状态。
搭建AWS S3
我们现在将使用Amazo Simple Storage Service(S3)作为我们registry/repository的存储层。我们将需要创建一个桶(bucket)以及用户凭证(user credentials)来允许我们的docker容器访问它。登录到我们的AWS账号(如果没有,就申请一个http://aws.amazon.com/),在控制台选择S3(Simpole Storage Service)。点击 Create Bucket,为你的桶输入一个名字(把它记下来,我们一会需要用到它),然后点击Create。
OK!我们已经搭建好存储部分了。
设置AWS访问凭证
我们现在将要创建一个新的用户。退回到AWS控制台然后选择IAM(Identity & Access Management)。在dashboard的左边,点击Users。然后选择 Create New Users。如图所示:
输入一个用户名(例如 docker-registry)然后点击Create。写下(或者下载csv文件)你的Access Key以及Secret Access Key。回到你的用户列表然后选择你刚刚创建的用户。在Permission section下面,点击Attach User Policy。之后在下一屏,选择Custom Policy。
custom policy的内容如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SomeStatement",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::docker-registry-bucket-name/*",
"arn:aws:s3:::docker-registry-bucket-name"
]
}
]
}
这个配置将允许用户(也就是regitstry)来对桶上的内容进行操作(读/写)(确保使用你之前创建AWS S3时使用的桶名)。总结一下:当你想把你的Docker镜像从你的本机推送到仓库中时,服务器就会将他们上传到S3。
via: http://cocoahunter.com/2015/01/23/docker-2/作者:Michelangelo Chasseur 译者:DongShuaike 校对:wxy本文由 LCTT 原创翻译,Linux中国 荣誉推出
查看原文:http://www.zoues.com/2016/10/20/%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e7%a7%81%e6%9c%89%e7%9a%84docker-registry/
相关文章推荐
- 搭建一个支持HTTPS的私有DOCKER Registry
- 搭建一个私有的Docker registry
- 搭建一个私有的Docker registry教程
- 在RHEL 7上如何搭建本地私有的docker registry
- Docker私有仓库Registry的搭建验证
- 搭建企业私有Docker Registry实战分享
- 基于Docker搭建Registry私有镜像仓库
- 在CentOS 6上搭建私有的Docker Registry
- docker registry-v2 搭建私有仓库
- docker 搭建私有registry
- 配置私有仓库(使用registry镜像搭建一个私有仓库)
- docker-registry 搭建私有仓库服务器
- Docker Registry搭建私有仓库
- docker registry-v2 搭建私有仓库
- 搭建私有Docker Registry
- 搭建docker私有库registry
- Docker私有仓库Registry 搭建
- Docker私有仓库Registry 搭建
- 搭建 Docker 私有仓库 Registry-v2
- 如何创建一个有密码保护的私有Docker Registry