越来越多的前端团队选择用 Docker 部署前端项目,方法是将项目打包成一个镜像,然后在服务端直接拉镜像启动项目。这种方式可以忽略服务器环境差异,更容易做版本管理。
但我们平常使用 Docker 拉取镜像时,默认会从 Docker Hub
这个公共仓库拉取。虽然 Docker Hub 也可以上传自己的镜像,但是上传后会对所有人开放,这对公司项目来说显然是不允许的。
为此,Docker 官方提供了工具 registry
来帮助我们搭建私有镜像仓库,用于管理自己的镜像。后续所有的项目更新、升级、回滚,都要用到这个镜像仓库。
下面详细介绍如何使用registry
搭建私有镜像仓库。
创建镜像仓库
首先确保在你要搭建私有仓库的服务器上,已经安装好了 Docker(如何安装 Docker 这里不介绍)。
(1)使用命令拉取 registry
镜像:
$ docker pull registry
(2)建立要存储私有镜像的目录,如 /data/docker/registry
:
$ mkdir -vp /data/docker/registry
(3)使用以下命令,基于 registry 镜像运将容器运行起来:
$ docker run -d \ -p 5000:5000 \ --restart=always \ --name registry \ -v /data/docker/registry:/var/lib/registry \ registry
容器运行后会占用 5000
端口,该端口是访问镜像仓库的入口。
(4)运行成功后,使用以下命令测试连接情况:
$ curl http://localhost:5000/v2/_catalog
如果返回以下结果:
{"repositories":[]}
则表示镜像仓库创建成功。此时仓库内没有镜像,所以是一个空数组。
(5)配置 Nginx 转发
一般情况下,需要配置一个域名来转发 5000
端口。假设域名为 docker.tes