docker私有仓库Harbor搭建

虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。 Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。 它主要提供 Dcoker Registry 管理界面UI,可基于角色访问控制,镜像复制, AD/LDAP 集成,日志审核等功能,完全的支持中文。

准备

  • 安装docker与docker-compose
  • 下载离线安装包harbor-offline-installer-v2.3.1.tgz
  • 域名(harbor.cw.net)及证书(harbor.cw.net.pem,harbor.cw.net.key),阿里云,腾讯云都可免费申请

安装

情况1

一台服务器只安装harbor(无需单独配置nginx)

修改harbor.yml

hostname: harbor.cw.net

http:
  port: 80 

https:
  port: 443
  certificate: /data/server/nginx/conf/ssl/harbor.cw.net.pem
  private_key: /data/server/nginx/conf/ssl/harbor.cw.net.key

harbor_admin_password: 123456 #管理员密码

database:
  password: 123456

data_volume: /data/harbor #挂载本地目录,会生成6个目录(ca_download  database  job_logs  redis  registry  secret)

情况2

服务器中已经存在web服务,80/443端口已被占用

修改harbor.yml

hostname: harbor.cw.net

http:
  port: 9480 #没用,但没有会报错

https:
  port: 9443
  certificate: /data/server/nginx/conf/ssl/harbor.cw.net.pem #没用,但没有会报错
  private_key: /data/server/nginx/conf/ssl/harbor.cw.net.key #没用,但没有会报错

harbor_admin_password: 123456 #管理员密码

database:
  password: 123456

data_volume: /data/harbor #挂载本地目录,会生成6个目录(ca_download  database  job_logs  redis  registry  secret)

nginx配置

server {
    listen       443 ssl;
    listen       80;
    server_name  harbor.cw.net;

    ssl_certificate   ssl/harbor.cw.net.pem;
    ssl_certificate_key  ssl/harbor.cw.net.key;
    include conf.d/ssl.conf;

    location / {
        proxy_pass   https://harbor.cw.net:9443;
        include conf.d/proxy.md;
    }

}

执行

./install.sh #可以重复执行,执行成功会在根目录生成docker-compose.yml文件,同时可以使用域名https://harbor.cw.net访问

日常操作

docker-compose down #停止
docker-compose up -d #开启

#如果修改了harbor.yml
1、docker-compose down #停止
2、./prepare #重新生成docker-compose.yml文件
3、docker-compose up -d #开启

客户端

登陆

docker login harbor.cw.net

上传

#标记(69593048aa3a为本地镜像id)
docker tag 69593048aa3a harbor.cw.net/library/busybox
#push
docker push harbor.cw.net/library/busybox

拉取

docker pull harbor.cw.net/library/busybox

感谢阅读这篇文章,如果你喜欢,或者遇到了问题,可以关注我的公众号