一、Harbor 简介
Harbor 是一个开源的企业级 Docker Registry 服务,提供了镜像管理、访问控制、身份验证等功能,适用于容器化环境下的镜像存储管理。它最初由 VMware 公司开发,2017 年开源,为企业容器化应用的部署和管理提供了强大的支持。
二、环境准备
在开始搭建 Harbor 之前,请确保您的服务器满足以下要求:
- 操作系统:CentOS 7 或更高版本、Ubuntu 16.04 等主流 Linux 发行版。
 - Docker Engine:20.10.0 或更高版本。
 - Docker Compose:1.18.0 或更高版本。
 - 硬件配置 :
- CPU:最少 2 核。
 - 内存:最少 4GB。
 - 硬盘:最少 40GB。
 
 
三、安装 Docker 和 Docker Compose
(一)安装 Docker
- 
安装必要工具:
Shell复制
shellyum install -y yum-utils device-mapper-persistent-data lvm2 - 
添加 Docker 阿里云源(可选,可更换为其他源):
Shell复制
shellyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo - 
安装 Docker:
Shell复制
shellyum install -y docker-ce docker-ce-cli containerd.io - 
配置 Docker 镜像加速(可选):
Shell复制
shellmkdir -p /etc/docker cat > /etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://registry.cn-hangzhou.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF - 
启动 Docker:
Shell复制
shellsystemctl daemon-reload systemctl enable docker systemctl start docker 
(二)安装 Docker Compose
- 
下载 Docker Compose 二进制文件(可更换为其他版本):
Shell复制
shellwget https://mirror.ghproxy.com/https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -O /usr/local/bin/docker-compose - 
添加可执行权限:
Shell复制
shellchmod +x /usr/local/bin/docker-compose - 
验证安装:
Shell复制
shelldocker-compose --version如果上述方法不工作,可以尝试使用 yum 安装:
Shell复制
shellyum install -y docker-compose-plugin然后使用:
Shell复制
shelldocker compose version ```[^5^] 
四、下载并安装 Harbor
(一)下载 Harbor
- 
通过 wget 命令下载(以 v2.12.1 版本为例):
Shell复制
shellwget https://github.com/goharbor/harbor/releases/download/v2.12.1/harbor-offline-installer-v2.12.1.tgz - 
也可以通过 GitHub 页面下载:
- 访问 Harbor Releases 页面 下载所需的离线版本。
 
 
(二)解压并修改配置文件
- 
解压文件:
Shell复制
shelltar -zxvf harbor-offline-installer-v2.12.1.tgz - 
进入解压后的 harbor 文件夹:
Shell复制
shellcd harbor - 
复制
harbor.yml.tmpl文件并重命名为harbor.yml:Shell复制
shellcp harbor.yml.tmpl harbor.yml - 
修改
harbor.yml配置文件,需要设置 hostname、端口、数据库密码等。例如:yaml复制
yaml# 修改hostname的值,如果没有域名就使用本机IP地址 hostname: 192.168.1.100 # 配置启动端口号 http: port: 5000 # Remember Change the admin password from UI after launching Harbor. harbor_admin_password: AdminHarbor12345根据实际情况进行其他相关配置。
 
五、启动 Harbor
- 
执行安装脚本:
Shell复制
shell./install.sh - 
使用 docker-compose 启动 Harbor:
Shell复制
shelldocker-compose up -d - 
查看 Harbor 服务状态:
Shell复制
shelldocker-compose ps确保所有服务的状态为
healthy。 
六、配置 Docker 客户端信任 Harbor 仓库
为了让 Docker 客户端能够正常访问 Harbor,需要配置 Docker 的信任仓库列表:
- 
添加信任仓库:
Shell复制
shellsudo vi /etc/docker/daemon.json在文件中添加以下内容(以
192.168.1.100为例):JSON复制
json{ "insecure-registries": ["192.168.1.100"] } - 
重启 Docker 服务:
Shell复制
shellsudo systemctl restart docker ```[^8^] 
七、使用 Harbor
(一)登录 Harbor
Shell复制
            
            
              shell
              
              
            
          
          docker login 192.168.1.100
        输入用户名和密码(默认用户名为 admin,密码为安装时设置的 harbor_admin_password)。
(二)推送镜像到 Harbor
- 
标记镜像:
Shell复制
shelldocker tag my-image:tag 192.168.1.100/project/my-image:tag - 
推送镜像:
Shell复制
shelldocker push 192.168.1.100/project/my-image:tag 
(三)从 Harbor 拉取镜像
Shell复制
            
            
              shell
              
              
            
          
          docker pull 192.168.1.100/project/my-image:tag
        八、配置 HTTPS(可选)
为了提高安全性,建议为 Harbor 配置 HTTPS。可以通过自签名证书或购买商业证书来实现。以下是使用自签名证书的示例:
- 
生成自签名证书(以
hub.laijuba.com为例):Shell复制
shellopenssl req -newkey rsa:4096 -nodes -sha256 -keyout hub.laijuba.com.key -x509 -days 365 -out hub.laijuba.com.crt - 
将证书和私钥复制到 Harbor 配置目录:
Shell复制
shellmkdir -p /etc/docker/certs.d/hub.laijuba.com cp hub.laijuba.com.crt hub.laijuba.com.key /etc/docker/certs.d/hub.laijuba.com/ - 
重启 Docker 服务:
Shell复制
shellsystemctl restart docker - 
重新登录 Harbor:
Shell复制
shelldocker login hub.laijuba.com此时应该能够成功登录并使用 HTTPS 访问 Harbor。
 
九、总结
通过以上步骤,您已经成功搭建了自己的 Docker 私有仓库 Harbor。Harbor 提供了丰富的功能,可以帮助您更好地管理 Docker 镜像。您可以根据实际需求进行进一步的配置和优化,如配置镜像复制、漏洞扫描等高级功能。