Docker 私有仓库搭建

在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。这一篇介绍registry、harbor两种私有仓库搭建。

registry 的搭建

Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。

# 下载镜像
docker pull registry:2
# 创建并运行容器
# 创建挂载目录
mkdir -p /mnt/d/dockerv/registry
docker run -d -v /mnt/d/dockerv/registry:/var/lib/registry -p 15000:5000 --name myregistry registry:2

Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。

浏览器访问http://127.0.0.1:15000/v2,出现下面情况说明registry运行正常。
【docker】私有仓库搭建-LMLPHP

验证

推送一个镜像到服务器上

#打包镜像
docker tag nginx:latest 192.168.110.106:15000/nginx:latest
docker push 192.168.110.106:15000/nginx:latest
#结果报错了
The push refers to repository [192.168.110.106:15000/nginx]
Get https://192.168.110.106:15000/v2/: http: server gave HTTP response to HTTPS client

报错的意思是说
因为客户端push的时候采用https协议,而registry未使用https导致的。

解决办法

如果你的harbor服务器是http访问,那么修改registry为http

vim /etc/docker/daemon.json
#修改为,增加一个key insecure-registries即可
{
  "registry-mirrors": ["https://rjt23nxt.mirror.aliyuncs.com"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"},
  "insecure-registries":["192.168.110.106:15000","registry-docker.dlanqi.com"]
}
# 重启 docker
systemctl daemon-reload
systemctl restart docker

再次执行

docker push 192.168.110.106:15000/nginx:latest
The push refers to repository [192.168.110.106:15000/nginx]
9d1af766c818: Pushed 
d97733c0a3b6: Pushed 
c553c6ba5f13: Pushed 
48b4a40de359: Pushed 
ace9ed9bcfaf: Pushed 
764055ebc9a7: Pushed 
latest: digest: sha256:1c70a669bbf07f9862f269162d776c35144b116938d1becb4e4676270cff8f75 size: 1570

成功了,查看下浏览器

http://192.168.110.106:15000/v2/_catalog

输出结果为

{“repositories”:[“nginx”]}

看到了这个仓库了

查看镜像版本

http://192.168.110.106:15000/v2/nginx/tags/list

harbor 的搭建

docker 官方提供的私有仓库 registry,用起来虽然简单 ,但在管理的功能上存在不足。 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。

下载

地址:https://github.com/goharbor/harbor/releases 本文是有 v1.2.2

解压下载的安装包 harbor-offline-installer-v1.2.2.tgz

09-12 22:57