docker私有仓库Harbor搭建
 编辑于 2021-08-16 20:30:46 阅读 2007
虽然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
