咱们可能但愿构建和存储包含不想公开的信息或数据的镜像,由于Docker公司的团队开源了docker-registry的代码,这样咱们就能够基于此代码在内部运行本身的registry。docker
服务端
1.拉去仓库镜像
[root@slave5 ~]# docker pull registry:2.1.1
2.查看容器
[root@slave5 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
38802006b373 docker.io/registry:2.1.1 "/bin/registry /etc/ 24 hours ago Up 5 minutes 0.0.0.0:5000->5000/tcp registry
3.启动容器
[root@slave5 ~]# docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:2.1.1ubuntu
重要:默认状况下,会将仓库存放于容器的/var/lib/registry目录下,这样若是容器被删除,则存放于容器中的镜像也会丢失,因此咱们通常状况下会指定本地一个目录挂载到容器的/opt/registry下, 两个目录下都有!
·registry的默认存储路径是/tmp/registry,只是个临时目录,一段时间以后就会消失
·因此使用-v参数,指定个本地持久的路径。
4.访问http://ip:5000端口,出现以下界面,则表明仓库安装成功vim
客户端
1.拉取镜像
[root@slave5 ~]# docker pull busybox
2.为镜像打标签
[root@slave5 ~]# docker tag docker.io/busybox 192.168.0.38:5000/busybox
[root@slave5 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker.io/busybox latest 0064fda8c45d 5 days ago 1.113 MB
<none> <none> 42316db2cd8d 12 days ago 187.9 MB
docker.io/registry latest a8706c2bfd21 2 weeks ago 422.8 MB
docker.io/ubuntu 14.04 d55e68e6cc9c 2 weeks ago 187.9 MB
3.编辑docker配置文件,指定私有仓库urlcurl
[root@slave5 ~]# vim /etc/sysconfig/docker
OPTIONS='--insecure-registry 192.168.0.38:5000 '
[root@slave ~]# service docker restarttcp
4.上传镜像到仓库
docker push 192.168.0.38:5000/busybox
url
5.查看私有仓库
[root@slave ~]# curl 192.168.0.38:5000/v1/search
{"num_results": 1, "query": "", "results": [{"description": "", "name": "library/busybox"}]}rest