在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。这一篇介绍registry、harbor两种私有仓库搭建。
二、registry 的搭建
Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。
docker pull registry
mkdir –p /usr/local/registry
docker run -d -p 5000:5000 --name docker-registry -v /usr/local/registry:/tmp/registry registry
-d 表示后台模式运行
-p 5000:5000 表示将容器的5000端口映射到宿主机的5000端口
–name 表示为当前容器指定名称
-v 表示将宿主机的/usr/local/registry 挂载到容器/tmp/resgistry
容器正常启动,对外提供服务通过5000端口映射到docker-registry的5000端口;
curl http://127.0.0.1:5000/v2/_catalog
收到的响应如下,是个json对象,其中repositories对应的值是空的json数组,表示目前仓库里还没有镜像:
{“repositories”:[]}
先拉个nginx:latest镜像下来
docker pull nginx:lastes
docker images
要通过docker tag将该镜像标志为要推送到私有仓库:
docker tag nginx:latest localhost:5000/nginx:latest docker push localhost:5000/nginx:latest curl http://localhost:5000/v2/_catalog
原文:https://www.cnblogs.com/acestart/p/14786578.html