Harber使用(创建项目-用户)和Docker主从镜像

本文详细介绍Harbor企业级Docker镜像仓库的使用方法,包括登录、项目管理、镜像上传与下载、用户权限配置及镜像复制流程。通过具体实例展示如何高效管理和利用Docker镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、登录 Web Harbor

输入用户名admin,默认密码(或已修改密码)登录系统。我的Harber地址是10.236.63.76
在这里插入图片描述我们可以看到系统各个模块如下:

项目:新增/删除项目,查看镜像仓库,给项目添加成员、查看操作日志、复制项目等
日志:仓库各个镜像create、push、pull等操作日志
系统管理
    用户管理:新增/删除用户、设置管理员等
    复制管理:新增/删除从库目标、新建/删除/启停复制规则等
    配置管理:认证模式、复制、邮箱设置、系统设置等 
其他设置
    用户设置:修改用户名、邮箱、名称信息
    修改密码:修改用户密码 

注意:非系统管理员用户登录,只能看到有权限的项目和日志,其他模块不可见。

2、新建项目

我们新建一个名称为wanyang的项目(已经创建),设置不公开。注意:当项目设为公开后,任何人都有此项目下镜像的读权限。命令行用户不需要“docker login”就可以拉取此项目下的镜像。
在这里插入图片描述
新建项目完毕后,我们就可以用admin账户提交本地镜像到Harbor仓库了。例如我们提交本地nginx镜像:

1、admin登录

$ docker login 10.236.63.76
Username: admin
Password:
Login Succeeded

2、给镜像打tag

$ docker tag nginx 10.236.63.76/wanyang/nginx:latest
$ docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
nginx                              latest              958a7ae9e569        2 weeks ago         109 MB
10.236.63.76/wanyang/nginx         latest              958a7ae9e569        2 weeks ago         109 MB

3、push到仓库

$ docker push 10.236.63.76/wanyang/nginx
The push refers to a repository [10.236.63.76/wanyang/nginx]
a552ca691e49: Pushed
7487bf0353a7: Pushed
8781ec54ba04: Pushed
latest: digest: sha256:41ad9967ea448d7c2b203c699b429abe1ed5af331cd92533900c6d77490e0268 size: 948

上传完毕后,登录Web Harbor,选择项目,项目名称wanyang,就可以查看刚才上传的nginx image了。

在这里插入图片描述

3、创建用户并分配权限

我们刚一直是用admin操作,实际应用中我们使用每个人自己的账户登录。所以就需要新建用户,同时为了让用户有权限操作已经创建的项目,还必须将该用户添加到该项目成员中。
创建用户名为wanyang的测试用户,点击系统管理-》用户管理-》创建用户,输入用户名、邮箱、密码等信息。
在这里插入图片描述将wanyang用户添加到wanyang项目成员中,点击项目->wanyang->成员->新建成员,填写姓名,选择角色。
在这里插入图片描述现在我们使用wanyang账户本地模拟操作pull刚上传的nginx镜像。

1、先移除tag(因为我本地刚上传了该nginx镜像,直接pull,检测本地存在就不会pull)

$ docker rmi -f 10.236.63.76/wanyang/nginx
Untagged: 10.236.63.76/wanyang/nginx:latest
Untagged: 10.236.63.76/wanyang/nginx@sha256:41ad9967ea448d7c2b203c699b429abe1ed5af331cd92533900c6d77490e0268

2、退出admin账号,登录wanyang账号

$ docker logout 10.236.63.76
Removing login credentials for 10.236.63.76
$ docker login 10.236.63.76
Username: wanyang
Password:
Login Succeeded

3、pull harbor镜像到本地

$ docker pull 10.236.63.76/wanyang/nginx:latest
latest: Pulling from wanyang/nginx
Digest: sha256:41ad9967ea448d7c2b203c699b429abe1ed5af331cd92533900c6d77490e0268
Status: Downloaded newer image for 10.236.63.76/wanyang/nginx:latest

4、配置 Docker 镜像复制

首先我们至少配置两个Harbor服务 :

    Harbor1:10.236.63.76
    Harbor2:10.236.63.62

我们已经往Harbor1上面push了一个镜像了,那么就把Harbor1当做主节点,Harbor2当做复制节点,我们要把Harbor1上的镜像自动复制到Harbor2上去。

配置复制规则,点击项目->wanyang->复制->新建复制规则,填写名称、目标名、目标URL等信息。 注意:目标URL这里是复制节点Harbor2地址,http://10.236.63.62,用户名和密码为Harbor2配置的admin账户和密码,一旦勾选启用,那么新建复制规则完成后,立马就检测需要同步的image自动同步。
在这里插入图片描述为了更好的演示效果,现在我往Harbor1上wanyang项目下在push一个镜像maven:3-jdk-8,看下新上传的镜像会不会自动同步到Harbor2上去。
在这里插入图片描述 push完毕,显示已完成复制到Harbor2,现在登录到Harbor2 Web Harbor,我们看到镜像已经自动复制过来啦,操作日志也会一起复制过来。
在这里插入图片描述我们现在从Harbor2上面pull下刚同步过去的maven镜像试试看,妥妥的没问题。

$ docker login 10.236.63.62
Username: admin
Password:
Login Succeeded

$ docker pull 10.236.63.62/wanyang/maven:3-jdk-8
3-jdk-8: Pulling from wanyang/maven
Digest: sha256:16e68f691322cd425d27c798f88df4eb3c4322fe294067f21325b36ec587fa06
Status: Downloaded newer image for 10.236.63.62/wanyang/maven:3-jdk-8

$ docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
nginx                              latest              958a7ae9e569        2 weeks ago         109 MB
10.236.63.76/wanyang/nginx         latest              958a7ae9e569        2 weeks ago         109 MB
10.236.63.62/wanyang/maven         3-jdk-8             c58c661bb6ad        5 weeks ago         653 MB
10.236.63.76/wanyang/maven         3-jdk-8             c58c661bb6ad        5 weeks ago         653 MB
maven                              3-jdk-8             c58c661bb6ad        5 weeks ago         653 MB

我们在看下Harbor1和Harbor2上的操作日志,是都按照我们操作的顺序显示的。

在这里插入图片描述在这里插入图片描述

5、FAQ

1、配置并启动Harbor之后,本地执行登录操作,报错:

docker login 10.236.63.76
Username: admin
Password:
Error response from daemon: Get https://10.236.63.76/v1/users/: dial tcp 10.236.63.76:443: getsockopt: connection refused

这是因为docker1.3.2版本开始默认docker registry使用的是https,我们设置Harbor默认http方式,所以当执行用docker login、pull、push等命令操作非https的docker regsitry的时就会报错。解决办法:
    如果系统是MacOS,则可以点击“Preference”里面的“Advanced”在“Insecure Registry”里加上10.236.63.76,重启Docker客户端就可以了。
    如果系统是Ubuntu,则修改配置文件/lib/systemd/system/docker.service,修改[Service]下ExecStart参数,增加–insecure-registry 10.236.63.76。
    如果系统是Centos,可以修改配置/etc/sysconfig/docker,将OPTIONS增加–insecure-registry 10.236.63.76。

2、使用wanyang账户执行docker pull命令时,报错

$ docker pull 10.236.63.76/wanyang/nginx:latest
Error response from daemon: repository 10.236.63.76/wanyang/nginx not found: does not exist or no pull access
  

这是原因可能有,一是Harbor仓库上wanyang/nginx确实不存在,二是项目未设置公开的时候,该账户未执行docker login 10.236.63.76登录操作,三是该账户对10.236.63.76/wanyang项目没有权限,需要在该项目下增加wanyang成员,并选择角色。

3、如果需要修改Harbor的配置文件harbor.cfg,因为Harbor是基于docker-compose服务编排的,我们可以使用docker-compose命令重启Harbor。不修改配置文件,重启Harbor命令:docker-compose start | stop | restart

1、停止Harbor
$ docker-compose down -v
Stopping nginx ... done
Stopping harbor-jobservice ... done
......
Removing harbor-log ... done
Removing network harbor_harbor

2、启动Harbor
$ docker-compose up -d
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... 
......
Creating nginx
Creating harbor-jobservice ... done
<think>好的,我现在需要帮用户解决如何搭建Docker私有仓库Harbor的问题。用户提到想要了解Harbor的概述、部署方法及使用方式,所以我的回答需要涵盖这些方面。首先,我得确保自己理解Harbor的基本概念,它是一个企业级的私有镜像仓库,基于Docker Registry,提供了安全、权限管理、镜像复制等功能。接下来是部署步骤,需要详细说明环境准备、安装依赖、下载解压Harbor、配置harbor.yml、执行安装脚本等过程。然后,使用方式部分应该包括登录Harbor、推送拉取镜像、管理用户权限,以及镜像复制功能。同时,用户提供的引用中有提到Harbor的配置指南安装步骤,需要正确引用这些资料。另外,用户可能还需要常见问题的解决方法,比如端口占用、证书问题、权限不足等。最后,按照用户的要求生成相关问题,确保覆盖扩展知识点。整个过程要结构清晰,步骤明确,使用正确的LaTeX格式,并添加引用标识。需要检查语法格式是否正确,避免错误。现在开始组织内容,分步骤详细说明,确保用户能顺利搭建使用Harbor。</think>### Docker私有仓库Harbor搭建教程 #### 一、Harbor概述 Harbor是由VMware开源的**企业级私有镜像仓库**,支持镜像存储、权限管理、漏洞扫描、镜像复制等功能。其核心基于Docker Registry,通过Web界面简化了镜像管理流程,适用于企业级容器化部署场景[^1]。 #### 二、环境准备 1. **系统要求** - 操作系统:Ubuntu/CentOS 7+ - 硬件配置:至少2核CPU、4GB内存、40GB磁盘 - 软件依赖:Docker 17.06+、Docker Compose 1.18.0+ 2. **安装依赖** ```bash # 安装Docker curl -fsSL https://get.docker.com | bash -s docker # 安装Docker Compose sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` #### 三、Harbor部署步骤 1. **下载Harbor安装包** ```bash wget -c https://github.com/goharbor/harbor/releases/download/v2.3.5/harbor-offline-installer-v2.3.5.tgz tar xvf harbor-offline-installer-v2.3.5.tgz cd harbor ``` 2. **配置`harbor.yml`** ```yaml hostname: harbor.yourdomain.com # 域名或IP http: port: 80 https: port: 443 certificate: /data/cert/server.crt private_key: /data/cert/server.key database: password: Harbor12345 # 数据库密码 data_volume: /data # 存储路径 ``` 3. **执行安装脚本** ```bash sudo ./install.sh # 安装完成后自动启动服务 ``` #### 四、Harbor使用方式 1. **登录私有仓库** ```bash docker login harbor.yourdomain.com -u admin -p Harbor12345 ``` 2. **推送镜像示例** ```bash docker tag nginx:latest harbor.yourdomain.com/library/nginx:latest docker push harbor.yourdomain.com/library/nginx:latest ``` 3. **镜像管理功能** - **权限控制**:通过项目(Project)隔离不同团队的镜像访问 - **漏洞扫描**:集成Trivy进行镜像安全检测 - **复制策略**:支持跨多个Harbor实例同步镜像[^3] #### 五、常见问题解决 | 问题类型 | 解决方法 | |-----------------|--------------------------------------------------------------------------| | 端口冲突 | 修改`harbor.yml`中的`http.port`或`https.port`并重启服务 | | 证书错误 | 生成自签名证书:`openssl req -x509 -nodes -days 365 -newkey rsa:2048...`| | 权限不足 | 在`项目`→`成员`中添加用户并分配角色(访客/开发者/管理员) | #### 六、进阶配置 - **高可用部署**:通过PostgreSQL主从复制Redis集群实现数据库高可用 - **LDAP集成**:在`harbor.yml`中配置`ldap_url``ldap_base_dn`以对接企业账号体系 - **存储后端**:支持对接AWS S3、Azure Blob等云存储服务 [^1]: 运维Tips:Docker或K8s集群拉取Harbor私有容器镜像仓库配置指南 : 搭建harbor私有镜像仓库步骤示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值