搭建和使用Docker私有仓库

2015/6/5 posted in  Docker

有没有感觉下载DockerHub的镜像很慢?至少我感觉慢的不行了,恰好学到了怎么搭建私有仓库,可以把常用的镜像在本地管理。 安装Docker之后,可以是使用官方提供的registry镜像来搭建一套本地私有仓库环境:

docker run -d -p 5000:5000 registry

输入之后就可以等待了,其实本地仓库本身就是容器,这句命令会下载并创建一个registry容器,创建本地的私有仓库。 默认情况下,会将仓库创建在容器的tmp/registry目录下,当然,可以通过-v参数将镜像文件存放到本地的指定路径上。 因为我的腾讯云加了一个10G的数据卷mount在了/data,所以直接:

docker run -d -p 5000:5000 --name registry -v /data/registry:/tmp/registry registry

然后就建好了本地的仓库。比如先上传一个ubuntu的镜像。 然后就可以管理这个私有仓库,上传镜像前需要使用docker tag命令将这个镜像标记为127.0.0.1:500/ubuntu。 标签的格式为:[:TAG][REGISTRYHOST/][USERNAME/]NAME[:TAG]

docker tag ubuntu:latest 127.0.0.1:5000/ubuntu
docker images 
REPOSITORY                    TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
dbserver                      lastest             b81857c55926        19 hours ago        281.8 MB
ubuntu                        14.04               ab80404d13d5        25 hours ago        215.4 MB
mysql                         latest              e0db8fe06e30        36 hours ago        283.5 MB
ubuntu                        latest              fa81ed084842        4 days ago          188.3 MB
127.0.0.1:5000/ubuntu         latest              fa81ed084842        4 days ago          188.3 MB
registry                      latest              d849e35be7b0        9 days ago          413.9 MB

可以使用docker pull上传标记的镜像:

docker push 127.0.0.1:5000/ubuntu

在获取镜像的时候,只需要在前面加127.0.0.1:5000便可以了。 不过这只是在本地提供服务,因为Docker传输要求https,因此还没有尝试证书问题,所以对外提供服务等有机会再尝试。