Harbor安装配置全过程-sanshow的博客-51CTO博客

Windows Windows 2个月前 (08-15) 9次浏览 未收录 0个评论 扫描二维码

一、准备一台Linux主机

我用了一台VMware虚拟机,配置如下:

IP:192.168.1.79

安装时注意一定要将最大的空间分给/data,因为Harbor默认会使用这个分区

官网硬件要求

Harbor安装配置全过程-sanshow的博客-51CTO博客

1、开SSH

systemctl enable sshd

2、关闭SELINUX

vi /etc喎�http://www.2cto.com/kf/ware/vc/” target=”_blank” class=”keylink”>vc3lzY29uZmlnL3NlbGludXgKPC9wPjxwPtDeuMTPwrHfuuzX1rK/t9YKPC9wPjxwPiMgVGhpcyBmaWxlIGNvbnRyb2xzIHRoZSBzdGF0ZSBvZiBTRUxpbnV4IG9uIHRoZSBzeXN0ZW0uCjwvcD48cD4jIFNFTElOVVg9IGNhbiB0YWtlIG9uZSBvZiB0aGVzZSB0aHJlZSB2YWx1ZXM6CjwvcD48cD4jICAgICBlbmZvcmNpbmcgLSBTRUxpbnV4IHNlY3VyaXR5IHBvbGljeSBpcyBlbmZvcmNlZC4KPC9wPjxwPiMgICAgIHBlcm1pc3NpdmUgLSBTRUxpbnV4IHByaW50cyB3YXJuaW5ncyBpbnN0ZWFkIG9mIGVuZm9yY2luZy4KPC9wPjxwPiMgICAgIGRpc2FibGVkIC0gTm8gU0VMaW51eCBwb2xpY3kgaXMgbG9hZGVkLgo8L3A+PHA+U0VMSU5VWD1kaXNhYmxlZAoJCQkJPC9wPjxwPiMgU0VMSU5VWFRZUEU9IGNhbiB0YWtlIG9uZSBvZiB0aHJlZSB0d28gdmFsdWVzOgo8L3A+PHA+IyAgICAgdGFyZ2V0ZWQgLSBUYXJnZXRlZCBwcm9jZXNzZXMgYXJlIHByb3RlY3RlZCwKPC9wPjxwPiMgICAgIG1pbmltdW0gLSBNb2RpZmljYXRpb24gb2YgdGFyZ2V0ZWQgcG9saWN5LiBPbmx5IHNlbGVjdGVkIHByb2Nlc3NlcyBhcmUgcHJvdGVjdGVkLgo8L3A+PHA+IyAgICAgbWxzIC0gTXVsdGkgTGV2ZWwgU2VjdXJpdHkgcHJvdGVjdGlvbi4KPC9wPjxwPlNFTElOVVhUWVBFPXRhcmdldGVkCjwvcD48cD4zoaKwstewcnoKPC9wPjxwPnl1bSAteSBpbnN0YWxsIGxyenN6CjwvcD48cD7Wrrrzyc+0q87EvP7Su7ao0qrTwy1iZbLOyv2jqMbk1tAtYsrHLS1iaW5hcnnTw7b+vfjWxrXEt73KvcnPtKujrC1lysctLWVzY2FwZce/1sZlc2NhcGXL+dPQv9jWxtfWt/ujqaOst/HU8snPtKu1xM7EvP6yu83q1fsKPC9wPjxwPnJ6IKhDYmUKPC9wPjxwPjShorCy17B3Z2V0CjwvcD48cD55dW0gLXkgaW5zdGFsbCB3Z2V0CjwvcD48cD41oaK4/Lu7eXVt1LSjrNPD09rM4cvZeXVtCjwvcD48cD6jqDGjqbG4t915dW3UtAo8L3A+PHA+bXYgL2V0Yy95dW0ucmVwb3MuZC9DZW50T1MtQmFzZS5yZXBvIC9ldGMveXVtLnJlcG9zLmQvQ2VudE9TLUJhc2UucmVwby5iYWNrdXAgCjwvcD48cD6jqDKjqc/C1NjQwrXEQ2VudE9TLUJhc2UucmVwbyC1vS9ldGMveXVtLnJlcG9zLmQvCjwvcD48cD53Z2V0IC1PIC9ldGMveXVtLnJlcG9zLmQvQ2VudE9TLUJhc2UucmVwbyBodHRwOi8vbWlycm9ycy5hbGl5dW4uY29tL3JlcG8vQ2VudG9zLTcucmVwbyAgCjwvcD48cD7H5cDtu7q05iAKPC9wPjxwPnl1bSBjbGVhbiBhbGwgCjwvcD48cD7W2NDCyfqzybu6tOYgCjwvcD48cD55dW0gbWFrZWNhY2hlIAo8L3A+PHA+NqGiudix1bfAu/DHvQo8L3A+PHA+c3lzdGVtY3RsIHN0b3AgZmlyZXdhbGxkCjwvcD48cD5zeXN0ZW1jdGwgZGlzYWJsZSBmaXJld2FsbGQKPC9wPjxwPgo/PC9wPjxwPjxzdHJvbmc+tv6horCy17BIYXJib3IKPC9zdHJvbmc+PC9wPjxwPrnZzfi9zLPMo7podHRwczovL2dpdGh1Yi5jb20vZ29oYXJib3IvaGFyYm9yL2Jsb2IvbWFzdGVyL2RvY3MvaW5zdGFsbGF0aW9uX2d1aWRlLm1kCjwvcD48cD4xoaKwstewsdjQ67XE1+m8/go8L3A+PHA+udnN+MjtvP7SqsfzvPvPwqOsyrW8yrCy17DX7tDCsOaxvry0v8kKPC9wPjxwPjxpbWcgc3JjPQ==”https://www.2cto.com/uploadfile/Collfiles/20190506/201905061206353850.png” alt=”\” />

安装python

CentOS7默认自带已安装好

安装docker

由于Docker已分为社区版和企业版,要装最新版本只能选择社区版,所以不要直接用yum install docker –y安装,否则安装的是旧版的Docker

(1)安装所需的软件包 yum-utils、device-mapper-persistent-data和 lvm2

yum remove docker-latest-logrotate docker-logrotate docker-selinux dockdocker-engine

yum install -y yum-utils device-mapper-persistent-data lvm2

(2)国内部分用户可能无法连接docker官网提供的源,这里提供阿里云的镜像节点供测试使用

yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

rpm –import http://mirrors.aliyun.com/docker-ce/linux/centos/gpg

yum makecache fast

yum -y install docker-ce

启动docker和检查运行状态

systemctl start docker

systemctl status docker

将服务加入到启动项

systemctl enable docker

查看版本

Harbor安装配置全过程-sanshow的博客-51CTO博客

安装docker-compose

编译安装pip

https://pypi.org/project/setuptools/

yum install unzip -y

unzip setuptools-40.4.3.zip

cd setuptools-40.4.3

python setup.py install

https://pypi.org/project/pip/

tar -xf pip-18.1.tar.gz

cd pip-18.1

python setup.py install

加速pip

cd ~

mkdir .pip

ls ~/.pip

vi ~/.pip/pip.conf

写入

[global]

index-url = http://mirrors.aliyun.com/pypi/simple/

?

[install]

trusted-host=mirrors.aliyun.com

pip安装docker-compose

pip install docker-compose

pip install –upgrade docker-compose

查看版本

docker-compose -v

Harbor安装配置全过程-sanshow的博客-51CTO博客

2、安装Harbor

(1)从这里下载:https://github.com/goharbor/harbor/releases。PS:不×××无法下载

Harbor安装配置全过程-sanshow的博客-51CTO博客

一定要下载offline离线安装包:https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.6.1.tgz

(2)解压

tar xvf harbor-offline-installer-v1.6.1.tgz

移动解压后的harbor目录到/data/app/,因为/data分区是划分出来的

mv harbor /data/app/

(3)编辑vi harbor.cfg文件

cd /data/app/harbor

cp harbor.cfg harbor.cfg.bak

vi harbor.cfg

内容:

hostname = 192.168.1.79

ui_url_protocol = http

max_job_workers = 10

customize_crt = off

ssl_cert = /data/cert/server.crt

ssl_cert_key = /data/cert/server.key

secretkey_path = /data

admiral_url = NA

log_rotate_count = 50

log_rotate_size = 200M

http_proxy =

https_proxy =

no_proxy = 127.0.0.1,localhost,ui,registry

email_identity =

email_server = smtp.mydomain.com

email_server_port = 25

email_username = sample_admin@mydomain.com

email_password = abc

email_from = admin

email_ssl = false

email_insecure = false

harbor_admin_password = *******

auth_mode = ldap_auth

self_registration = off

token_expiration = 60

project_creation_restriction = everyone

db_host = postgresql

db_password = root123

db_port = 5432

db_user = postgres

redis_host = redis

redis_port = 6379

redis_password =

redis_db_index = 1,2,3

clair_db_host = postgresql

clair_db_password = root123

clair_db_port = 5432

clair_db_username = postgres

clair_db = postgres

clair_updaters_interval = 12

uaa_endpoint = uaa.mydomain.org

uaa_clientid = id

uaa_clientsecret = secret

uaa_verify_cert = true

uaa_ca_cert = /path/to/ca.pem

registry_storage_provider_name = filesystem

registry_storage_provider_config =

registry_custom_ca_bundle =

解释:

原来没注释的参数不要注释掉,否则下边一步不通过。留默认即可

hostname:配置主机名称,不可以设置127.0.0.1,localhost这样的主机名,可以是IP或者域名

ui_url_protocol:指定使用HTTP协议还是HTTPS协议

Email settings:邮箱设置,option配置,只在首次启动生效,可以登陆UI后修改

harbor_admin_password:设置管理员的初始密码,只在第一次登录时使用

auth_mode:用户认证模式,默认是db_auth,也可以使用ldap_auth验证。

db_password:使用db需要指定连接数据库的密码

self_registration:是否允许自行注册用户,默认是on,新版本可以在图形界面中修改。

max_job_workers:最大工作数,默认是10个

customize_crt:是否为token生成证书,默认为on

ssl_cert:nginx cert与key文件的路径, 只有采用https协议是才有意义

ssl_cert:nginx cert与key文件的路径, 只有采用https协议是才有意义

secretkey_path:The path of secretkey storage

admiral_url:Admiral”s url, comment this attribute, or set its value to NA when Harbor is standalone

clair_db_password:未启用calir服务,但解压目录下的”./prepare”文件中要检查以下相关参数配置,不能注释,否则环境准备检查不能通过,报”ConfigParser.NoOptionError: No option u’clair_db_password’ in section: u’configuration’ “相关错误;或者在”./prepare”中注释相关检查与定义,但需要注意,文件中的关联太多,推荐修改”harbor.cfg”文件即可

ldap_url:ladp相关设置,如未采用ldap认证,但解压目录下的”./prepare”文件中要检查以下相关参数配置,不能注释,否则环境准备检查不能通过,报”ConfigParser.NoOptionError: No option u’ldap_timeout’ in section: u’configuration’ “相关错误;或者在”./prepare”中注释相关检查与定义,但需要注意,文件中的关联太多,推荐修改”harbor.cfg”文件即可

ldap_scope:

Harbor安装配置全过程-sanshow的博客-51CTO博客

self_registration:默认开启自注册,off为关闭

token_expiration:token有效时间,默认30minutes

project_creation_restriction:创建项目权限控制,默认是”everyone”(所有人),可设置为”adminonly”(管理员)

verify_remote_cert:与远程registry通信时是否采用验证ssl

其他使用默认值

(4)确认无误后,使用./install.sh命令开始安装

Harbor安装配置全过程-sanshow的博客-51CTO博客

Harbor安装配置全过程-sanshow的博客-51CTO博客

4、启动和停止(必须在docker-compose.yml目录下运行命令,如/data/app/Harbor目录)

停止Harbor

docker-compose stop

Harbor安装配置全过程-sanshow的博客-51CTO博客

启动Harbor

docker-compose start

Harbor安装配置全过程-sanshow的博客-51CTO博客

5、登录测试

http://192.168.1.79

初始密码:admin/Harbor12345

Harbor安装配置全过程-sanshow的博客-51CTO博客

登录后的页面

Harbor安装配置全过程-sanshow的博客-51CTO博客

使用普通用户登录后创建一个新项目

Harbor安装配置全过程-sanshow的博客-51CTO博客

项目名称:sonarqube-xywg

Harbor安装配置全过程-sanshow的博客-51CTO博客

创建完毕

Harbor安装配置全过程-sanshow的博客-51CTO博客

6、上传镜像

在需要上传镜像的服务器上修改docker仓库连接方式为http,否则默认https无法连接。这里以192.168.1.155上我修改的sonarqube镜像为例

vi /etc/docker/daemon.json

加入

{

“insecure-registries” : [“192.168.1.79”]

}

Harbor安装配置全过程-sanshow的博客-51CTO博客

重启Docker生效

systemctl restart docker

重启Docker之前记得先停止所有容器,如果忘了停止容器,则在重启完Docker后使用docker restart 命令启动容器,不要docker rm ,否则容器修改的内容都被删除了

再次登录试试

docker login 192.168.1.79

Harbor安装配置全过程-sanshow的博客-51CTO博客

开始上传操作

docker commit -m “xywg’ 4da3dcf3c046 sonarqube-xywg

docker tag sonarqube-xywg 192.168.1.79/operation/sonarqube-xywg

docker push 192.168.1.79/operation/sonarqube-xywg

特别举例:将Python官方dokcer镜像上传到本地仓库

docker tag docker.io/python:3.7.2 192.168.1.79/public/python:3.7.2

docker push 192.168.1.79/public/python:3.7.2

解释:

docker commit -m 镜像信息 新镜像名[:版本号等tag标签]

#从现有容器中生成新镜像

docker tag 源镜像名[:版本号等tag标签] Docker仓库Host/项目名/目标镜像名[:版本号等tag标签]

#改变镜像标签,标记本地镜像是已经被归入Docker仓库的镜像。可以在docker commi的时候直接标记为Docker仓库的镜像

docker push 镜像名[:版本号等tag标签] #将本地的镜像上传到镜像仓库,注意每次push前需docker login 192.168.1.79确认是否已经登录了私有仓库,push后需docker logout 192.168.1.79登出私有仓库。如果push到公共项目必须登录admin账号才可以,如果用了非admin账户push到公共项目会出如下错误:denied: requested access to the resource is denied

Harbor安装配置全过程-sanshow的博客-51CTO博客

不指定版本号等tag标签时,Docker会自动帮我们补上latest的tag。这个latest其实在使用中不是最新的意思,而是默认值(defalut)的意思。

执行结果:

Harbor安装配置全过程-sanshow的博客-51CTO博客

进入Harbor的项目中查看

Harbor安装配置全过程-sanshow的博客-51CTO博客

查看已上传的sonarqube镜像

Harbor安装配置全过程-sanshow的博客-51CTO博客

PS:Harbor有分级概念:

(1)最上边是项目(项目名):实际操作中按照每个不同的项目名称来建项目,交由不同项目的负责人维护

Harbor安装配置全过程-sanshow的博客-51CTO博客

(2)接下来是项目中的镜像仓库(镜像名):镜像仓库中的镜像名按照项目名或者jar包war名来命名,但要求命名一次不能随意更改

Harbor安装配置全过程-sanshow的博客-51CTO博客

(3)最后是仓库中不同版本的镜像(tag版本标签):必须标明版本号,不能空或者用lastest(下图lastest是演示)

Harbor安装配置全过程-sanshow的博客-51CTO博客

喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址