您的位置:首页 > 运维架构 > Docker

搭建和使用Docker私有仓库

2016-09-23 16:49 776 查看
需要注意的是,从Docker Pool下载的镜像文件,与官方镜像文件是完全一致的。

安装Docker之后,可以是使用官方提供的registry镜像来搭建一套本地私有仓库环境:

 docker run –d –p 5000:5000 registry

输入之后就可以等待了,其实本地仓库本身就是容器,这句命令会下载(如果本地没有的话)并创建一个registry容器,创建本地的私有仓库。

默认情况下,会将仓库创建在容器的tmp/registry目录下,当然,可以通过-v参数将镜像文件存放到本地的指定路径上。

docker run –d –p 5000:5000  –v /docker/my_registry:/tmp/registry registry

然后就建好了本地的仓库。比如先上传一个centos7的镜像。

然后就可以管理这个私有仓库,上传镜像前需要使用docker tag命令将这个镜像标记为127.0.0.1:500/ubuntu。

[root@wdg2 ~]# docker  tag centos7 127.0.0.1:5000/centos7
[root@wdg2 ~]# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
127.0.0.1:5000/centos7   latest              562987ba2b7e        About an hour ago   589.4 MB
centos7                  latest              562987ba2b7e        About an hour ago   589.4 MB
registry                 latest              015b3f417103        3 days ago          33.29 MB
centos                   latest              9baab0af79c4        2 weeks ago         196.8 MB

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

docker push 127.0.0.1:5000/centos7

在获取镜像的时候,只需要在前面加127.0.0.1:5000便可以了。
[root@wdg2 my_registry]# docker push centos7
You cannot push a "root" repository. Please rename your repository to <user>/<repo> (ex: qq411277311/centos7)
[root@wdg2 my_registry]# docker push 127.0.0.1:5000/centos7
The push refers to a repository [127.0.0.1:5000/centos7] (len: 1)
562987ba2b7e: Image already exists
Digest: sha256:f4931bfbe218467c58a7b2700a6dd34e057cfcbf6814ff7357d0ad7ddd1c6552
[root@wdg2 my_registry]# docker rmi 127.0.0.1:5000/centos7
Untagged: 127.0.0.1:5000/centos7:latest
[root@wdg2 my_registry]# docker pull 127.0.0.1:5000/centos7
latest: Pulling from 127.0.0.1:5000/centos7
562987ba2b7e: Already exists
Digest: sha256:f4931bfbe218467c58a7b2700a6dd34e057cfcbf6814ff7357d0ad7ddd1c6552
Status: Downloaded newer image for 127.0.0.1:5000/centos7:latest

不过这只是在本地提供服务,因为Docker传输要求https,因此还没有尝试证书问题,所以对外提供服务等有机会再尝试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux docker