本文将介绍如何搭建最简单的私有镜像仓库——Docker Registry
。
首先,你需要使用 docker pull 命令拉取镜像:
1 | # docker pull registry |
然后,我们需要做一个端口映射,对外暴露端口,这样 Docker Registry 才能提供服务。它的容器内端口是 5000,简单起见,我们在外面也使用同样的 5000 端口,所以运行命令:
1 | # docker run -d -p 5000:5000 registry |
启动 Docker Registry 之后,你可以使用 docker ps 查看它的运行状态,可以看到它确实把本机的 5000 端口映射到了容器内的 5000 端口。
1 | $ docker ps |
接下来,我们就要使用 docker tag 命令给镜像打标签再上传了。因为上传的目标不是默认的 Docker Hub,而是本地的私有仓库,所以镜像的名字前面还必须再加上仓库的地址(域名或者 IP 地址都行),形式上和 HTTP 的 URL 非常像。
比如在这里,我就把“nginx:alpine”改成了“127.0.0.1:5000/nginx:alpine”:
1 | # docker tag nginx:alpine 127.0.0.1:5000/nginx:alpine |
现在,这个镜像有了一个附加仓库地址的完整名字,就可以用 docker push 推上去了:
1 | $ docker push 127.0.0.1:5000/nginx:alpine |
为了验证是否已经成功推送,我们可以把刚才打标签的镜像删掉,再重新下载:
1 | $ docker rmi 127.0.0.1:5000/nginx:alpine |
Docker Registry 虽然没有图形界面,但提供了 RESTful API,也可以发送 HTTP 请求来查看仓库里的镜像:
1 | $ curl 127.1:5000/v2/_catalog |
可以看到,因为应用被封装到了镜像里,所以我们只用简单的一两条命令就完成了私有仓库的搭建工作,完全不需要复杂的软件安装、环境设置、调试测试等繁琐的操作,提升了效率。