Docker私有仓库搭建与使用

文章目录

  • 1. Docker Registry
  • 2. Docker私有Registry
    • 2.1 使用docker-distribution自建Registry
    • 2.2 使用官方镜像自建Registry
  • 3. Harbor
    • 3.1 Docker compose
    • 3.2 部署Harbor
    • 3.3 使用Harbor
    • 3.4 注意事项


1. Docker Registry


网上有很多的Registry服务器都支持第三方用户注册,而后基于用户名去做自己的仓库,但是使用互联网上的Registry有一个缺陷,那就是我们去推送和下载镜像时都不会很快,而在生产环境中很可能并行启动的容器将达到几十、上百个,而且很有可能每个服务器本地是没有镜像的,此时如果通过互联网去下载镜像会有很多问题,比如下载速度会很慢、带宽会用很多等等,如果带宽不够的话,下载至启动这个过程可能要持续个几十分钟,这已然违背了使用容器会更加轻量、快速的初衷和目的。因此,很多时候我们很有可能需要去做自己的私有Registry

Docker Registry分类:

  • Sponsor Registry:第三方的Registry,供客户和Docker社区使用
  • Mirror Registry:第三方的Registry,只让客户使用
  • Vendor Registry:由发布docker镜像的供应商提供的registry
  • Private Registry:通过设有防火墙和额外的安全层的私有实体提供的registry

事实上,如果运维的系统环境托管在云计算服务上,比如阿里云,那么用阿里云的Registry则是最好的选择。很多时候我们的生产环境不会在本地,而是托管在数据中心机房里,如果我们在数据中心机房里的某台主机上部署Registry,因为都在同一机房,所以属于同一局域网,此时数据传输走内网,效率会极大的提升。

所有的Registry默认情况下都是基于https工作的,这是Docker的基本要求,而我自建Registry时很可能是基于http工作的,但是Docker默认是拒绝使用http提供Registry服务的,除非明确的告诉它,我们就是要用http协议的Registry


2. Docker私有Registry


为了帮助我们快速创建私有Registry,Docker专门提供了一个名为docker-distribution的软件包,我们可以通过安装这个软件包快速构建私有仓库。

当然,官方也提供了Registry的镜像,我们可以直接将其pull到本地并启动为容器即可快速实现私有Registry


2.1 使用docker-distribution自建Registry

环境:

角色 主机名 IP
docker node01 172.16.78.125
registry node02 172.16.78.128

在node02上安装docker-distribution

[root@node02 ~]# yum -y install docker-distribution
[root@node02 ~]# vim /etc/docker-distribution/registry/config.yml
...
version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        layerinfo: inmemory
    filesystem:
        rootdirectory: /var/lib/registry   //这里可以修改镜像存放目录
http:
    addr: :5000
...
[root@node02 ~

你可能感兴趣的:(Docker,docker)