# Docker 私有仓库

在工作中,一些公司的私有镜像或则其它个人镜像并不想提交到公开的仓库中,为了方便对这些镜像进行管理,Docker 不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。

# 私有仓库搭建

Docker 官方提供了一个搭建私有仓库的镜像 registry,运行该镜像并暴露 5000 端口,就可以使用了。

# 拉取私有仓库镜像
docker pull registry
# 启动私有仓库容器
docker run -id --name=registry -p 5000:5000 registry

现在,打开浏览器输入地址 http://私有仓库服务器IP:5000/v2/_catalog,看到 {"repositories":[]} 表示私有仓库搭建成功。

接着,让 Docker 信任私有仓库地址:

vim /etc/docker/daemon.json
# { "insecure-registries": ["私有仓库服务器IP:5000"] }

设置完成后,需要重启一下 Docker,同时不要忘记启动私有仓库容器:

systemctl restart docker
docker start registry

# 将镜像上传至私有仓库

标记本地镜像,将其归入私有仓库:

# docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
docker tag centos 私有仓库服务器IP:5000/centos

将本地的镜像上传到镜像仓库:

# docker push [OPTIONS] NAME[:TAG]
docker push 私有仓库服务器IP:5000/centos

Registry 服务默认会将上传的镜像保存在容器的 /var/lib/registry 目录,所以在启动时我们可以将主机的 /opt/registry 目录挂载到该目录。

# 查看已上传镜像信息
$ docker exec registry ls /var/lib/registry/docker/registry/v2/repositories
centos

# 从私有仓库拉取镜像

# 拉取镜像
docker pull 私有仓库服务器IP:5000/centos

# Harbor

Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器。

官方提供的私有仓库 registry 服务,功能比较简单。Harbor 则基于该服务增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。

要使用 Harbor 首先需要在 Harbor releases page (opens new window) 下载你需要的版本(online 和 offline 的区别是后者包含需要的镜像文件)。

offline 版为例,接着使用 tar 解压安装包:

tar xvf harbor-offline-installer-version.tgz

随后,编辑 harbor.yml 文件,根据情况修改 hostnamepost、存储目录等配置。

最后,通过运行 install.sh 构建镜像,并把服务启动起来。

详细的按照过程可以查看官方的说明 (opens new window)

# 参考