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