有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使 用。
docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库
安装运行 docker-registry
容器运行
你可以通过获取官方 registry 镜像来运行。
$ docker run -d -p 5000:5000 --restart=always --name registry registry
这将使用官方的 registry 镜像来启动本地的私有仓库。默认情况下,仓库会被创建在容器的 /var/lib/registry
下。可以通过 -v
参数来将镜像文件存放在本地的指定路径。
例如下面的例子将上传的镜像放到本地的 /opt/data/registry
目录。
$ docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
在私有仓库上传、搜索、下载镜像
创建好私有仓库之后,就可以使用 。
docker tag 来标记一个镜像,然后推送它到仓库。
例如私有仓库地址为 127.0.0.1:5000
先在本机查看已有的镜像。
$ docker images
使用 docker tag 将 ubuntu:latest 这个镜像标记为 127.0.0.1:5000/ubuntu:latest
格式:
docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
$ docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest
$ docker images
使用
docker push
上传标记的镜像。
$ docker push 127.0.0.1:5000/ubuntu:latest
用 curl 查看仓库中的镜像。
$ curl 127.0.0.1:5000/v2/_catalog
这里可以看到
{"repositories":["ubuntu"]}
先删除已有镜像,再尝试去下载这个镜像。表明镜像已经被成功上传了。
$ docker rmi 127.0.0.1:5000/ubuntu:latest
$ docker pull 127.0.0.1:5000/ubuntu:latest