摘要:的每個組件都是以容器的形式構建的,使用來對它進行部署。登錄輸入用戶名,默認密碼或已修改密碼登錄系統。
什么是 Harbor?
第一次使用這個的時候是剛進公司處理的第一個任務的時候,發現 Harbor 就是一個用于存儲和分發 Docker 鏡像的企業級Registry 服務器。
網上找到一個 Harbor 的架構圖:
Harbor 是 VMware 公司開源的企業級 DockerRegistry 項目,項目地址為 https://github.com/vmware/harbor。其目標是幫助用戶迅速搭建一個企業級的 Docker registry 服務。它以 Docker 公司開源的 registry 為基礎,提供了管理UI,基于角色的訪問控制(Role Based Access Control),AD/LDAP集成、以及審計日志(Auditlogging) 等企業用戶需求的功能,同時還原生支持中文。Harbor 的每個組件都是以 Docker 容器的形式構建的,使用 Docker Compose 來對它進行部署。
環境準備1、自己在騰訊云買的服務器(CentOS7.3)
2、Docker 版本:17.05.0-ce
3、Docker-compose:1.17.1
4、Harbor:1.1.2
安裝 Docker因為系統是 CentOS 7.3 ,內核啥的都已經是 3.10,所以不用擔心內核升級的問題,一些操作啥的在 7.x 上操作也很方便。
yum update //系統版本更新 vim /etc/yum.repos.d/docker.repo //添加以下內容 [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg //下面安裝 Docker 引擎 yum install docker-engine -y //安裝docker引擎,此步也可作為更新docker版本的操作:先#systemctl stop docker 停止docker服務,再#yum install docker-engine 更新docker版本 systemctl enable docker.service systemctl start docker //啟動docker守護進程 docker info //查看docker運行情況 docker -v //查看版本信息
修改 Docker 配置文件 /etc/default/docker 如下:
DOCKER_OPTS="--registry-mirror=http://aad0405c.m.daocloud.io" //換成國內的鏡像加速源,不然拉取鏡像簡直龜速,不想在吐槽了
使用 service docker restart 重啟 Docker 服務即可。
或者用官方提供的方式:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ef017c13.m.daocloud.io安裝 Docker-compose
如果是想直接命令安裝也行,
下載指定版本的docker-compose sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 對二進制文件賦可執行權限 chmod +x /usr/local/bin/docker-compose 測試下docker-compose是否安裝成功 docker-compose --version 出現如下 docker-compose version 1.17.1, build 6d101fb
但是,這種方法簡直龜速,幸好還有種方法,
見這里:https://docs.docker.com/compo...
這種需要通過 Python 的 pip 安裝
安裝 pipwget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz tar -vxf setuptools-1.4.2.tar.gz cd setuptools-1.4.2 python2.7 setup.py install //因為服務器自帶 Python 2.7 easy_install-2.7 pip安裝 docker compose
pip install docker-compose docker-compose --version //測試安裝是否成功安裝 Harbor
wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz 離線安裝包,也是龜速,把這個下載鏈接用迅雷下載,速度卻賊快,嘿嘿,然后再傳到服務器上去,整個過程快很多! tar -zxvf harbor-offline-installer-v1.1.2.tgz
解壓縮之后,進入目錄下會看到 harbor.cfg 文件,該文件就是 Harbor 的配置文件。
## Configuration file of Harbor # hostname設置訪問地址,可以使用ip、域名,不可以設置為127.0.0.1或localhost hostname = 115.159.227.249 #這里我先配置我的服務器IP地址 # 訪問協議,默認是http,也可以設置https,如果設置https,則nginx ssl需要設置on ui_url_protocol = http # mysql數據庫root用戶默認密碼root123,實際使用時修改下 db_password = root123 #Maximum number of job workers in job service max_job_workers = 3 #Determine whether or not to generate certificate for the registry"s token. #If the value is on, the prepare script creates new root cert and private key #for generating token to access the registry. If the value is off the default key/cert will be used. #This flag also controls the creation of the notary signer"s cert. customize_crt = on #The path of cert and key files for nginx, they are applied only the protocol is set to https ssl_cert = /data/cert/server.crt ssl_cert_key = /data/cert/server.key #The path of secretkey storage secretkey_path = /data #Admiral"s url, comment this attribute, or set its value to NA when Harbor is standalone admiral_url = NA #NOTES: The properties between BEGIN INITIAL PROPERTIES and END INITIAL PROPERTIES #only take effect in the first boot, the subsequent changes of these properties #should be performed on web ui #************************BEGIN INITIAL PROPERTIES************************ #Email account settings for sending out password resetting emails. #Email server uses the given username and password to authenticate on TLS connections to host and act as identity. #Identity left blank to act as username. email_identity = email_server = smtp.mydomain.com email_server_port = 25 email_username = sample_admin@mydomain.com email_password = abc email_from = adminemail_ssl = false ##The initial password of Harbor admin, only works for the first time when Harbor starts. #It has no effect after the first launch of Harbor. # 啟動Harbor后,管理員UI登錄的密碼,默認是Harbor12345 harbor_admin_password = Harbor12345 # 認證方式,這里支持多種認證方式,如LADP、本次存儲、數據庫認證。默認是db_auth,mysql數據庫認證 auth_mode = db_auth #The url for an ldap endpoint. ldap_url = ldaps://ldap.mydomain.com #A user"s DN who has the permission to search the LDAP/AD server. #If your LDAP/AD server does not support anonymous search, you should configure this DN and ldap_search_pwd. #ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com #the password of the ldap_searchdn #ldap_search_pwd = password #The base DN from which to look up a user in LDAP/AD ldap_basedn = ou=people,dc=mydomain,dc=com #Search filter for LDAP/AD, make sure the syntax of the filter is correct. #ldap_filter = (objectClass=person) # The attribute used in a search to match a user, it could be uid, cn, email, sAMAccountName or other attributes de pending on your LDAP/AD ldap_uid = uid #the scope to search for users, 1-LDAP_SCOPE_BASE, 2-LDAP_SCOPE_ONELEVEL, 3-LDAP_SCOPE_SUBTREE ldap_scope = 3 #Timeout (in seconds) when connecting to an LDAP Server. The default value (and most reasonable) is 5 seconds. ldap_timeout = 5 # 是否開啟自注冊 self_registration = on # Token有效時間,默認30分鐘 token_expiration = 30 # 用戶創建項目權限控制,默認是everyone(所有人),也可以設置為adminonly(只能管理員) project_creation_restriction = everyone #Determine whether the job service should verify the ssl cert when it connects to a remote registry. #Set this flag to off when the remote registry uses a self-signed or untrusted certificate. verify_remote_cert = on #************************END INITIAL PROPERTIES************************
啟動 harbor,修改完配置文件后,在的當前目錄執行./install.sh,Harbor服務就會根據當期目錄下的docker-compose.yml開始下載依賴的鏡像,檢測并按照順序依次啟動各個服務。
啟動完成后,我們訪問剛設置的 hostname 即可,http://115.159.227.249/,默認是80端口,如果端口占用,我們可以去修改docker-compose.yml文件中,對應服務的端口映射。
登錄 Web Harbor , 輸入用戶名 admin,默認密碼(或已修改密碼)登錄系統。
我們可以看到系統各個模塊如下:
項目:新增/刪除項目,查看鏡像倉庫,給項目添加成員、查看操作日志、復制項目等
日志:倉庫各個鏡像create、push、pull等操作日志
系統管理
用戶管理:新增/刪除用戶、設置管理員等
復制管理:新增/刪除從庫目標、新建/刪除/啟停復制規則等
配置管理:認證模式、復制、郵箱設置、系統設置等
其他設置
用戶設置:修改用戶名、郵箱、名稱信息
修改密碼:修改用戶密碼
注意:非系統管理員用戶登錄,只能看到有權限的項目和日志,其他模塊不可見。
我們要嘗試下能不能把自己 Docker 里面的鏡像 push 到 Harbor 的 library 里來(默認這個 library 項目是公開的,所有人都可以有讀的權限,都不需要 docker login 進來,就可以拉取里面的鏡像)。
注意:
為了后面留坑,我這里先 在自己的 docker.service 中添加倉庫:(這是個坑,建議你先按照我說的做,不然下面可能會一直登錄不上)
vim /usr/lib/systemd/system/docker.service 里面的這行修改為:(其實就是添加 --insecure-registry 115.159.227.249 ) ExecStart=/usr/bin/dockerd --insecure-registry 115.159.227.249
添加完了后重新啟動 docker:
systemctl daemon-reload && systemctl enable docker && systemctl start docker
啟動 docker 服務:
service docker start
登錄:(為了測試下能否登錄成功)
admin登錄 $ docker login 115.159.227.249 Username: admin Password: Login Succeeded
打 tag 并 push
docker tag ubuntu:15.10 115.159.227.249/library/ubuntu:15.10 //給我的鏡像打個 tag docker push 115.159.227.249/library/ubuntu The push refers to a repository [115.159.227.249/library/ubuntu] 98d59071f692: Pushed af288f00b8a7: Pushed 4b955941a4d0: Pushed f121afdbbd5d: Pushed 15.10: digest: sha256:ec89c4a90f45f5e103860191890f48d8379e0504a2881ff706aef0768dc0321b size: 1150
上傳完畢后,登錄Web Harbor,選擇項目 library,就可以看到我剛 push 的鏡像了。
同理,你也可以測試下從 Harbor pull 鏡像到你的 Docker 中去,這里就不繼續演示了。
最后轉載請注明地址為:http://www.54tianzhisheng.cn/...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27160.html
摘要:私有倉庫是,并在中運行。不要使用或為主機名注冊表服務需要由外部客戶端訪問或,默認為用于訪問和令牌通知服務的協議。打開或關閉,默認打開打開此屬性時,準備腳本創建私鑰和根證書,用于生成驗證注冊表令牌。 上一篇文章搭建了一個具有基礎功能,權限認證、TLS 的私有倉庫,但是Docker Registry 作為鏡像倉庫,連管理界面都沒有,甚至連一些運維必備的功能都是缺失的,還有什么 Docker...
摘要:上一篇文章搭建了一個具有基礎功能的私有倉庫,這次來搭建一個擁有權限認證的私有倉庫。移動證書到目錄。身份驗證為用戶創建一個帶有一個條目的密碼文件,密碼為創建倉庫啟動注冊表,指示它使用證書。注冊表在端口默認的端口上運行。 上一篇文章搭建了一個具有基礎功能的私有倉庫,這次來搭建一個擁有權限認證、TLS 的私有倉庫。 環境準備 系統:Ubuntu 17.04 x64 IP:198.13.48...
摘要:正好我們在使用作為的倉庫,同時提供了等諸多類型的倉庫功能。值得一提的是,我們可以使用這個倉庫從和下載鏡像,但是我們不能通過這個倉庫推送鏡像到遠程倉庫。 背景 我們一直使用 harbor 作為docker的鏡像倉庫,但Harbor只能作為私有倉庫,當需要Docker Hub 或 Google Cloud Containers 上的鏡像時,我們只能自己手動pull,重新打tag,再push...
摘要:架構介紹主要組件在架構上主要由五個組件構成的等服務,通過一個前置的反向代理統一接收瀏覽器客戶端的請求,并將請求轉發給后端不同的服務。目前不支持功能已提交。 前言 對于 Harbor 這樣一個優秀的 Docker Registry 管理開源項目,以下內容基本上來自前人已有的研究,我只是將其在實踐中進行了測試,并整理匯集了相關資料供大家參考,同時針對 Harbor 與 Rancher產品的...
摘要:在貓屎氤氳的霧氣里角仰望天花板,手機微信提醒這次構建成功或失敗,并附帶污言穢語。這時他可以開始往工位走,坐下時,微信又會提醒本次部署到成功或失敗。與企業微信的集成在決定使用之前,需要知道的是,是一個高度依賴社區的項目。 前言 相信我,一切事情的發生都是趕鴨子上架,沒有例外。人類所有偉大的變革都是迫不得已,可又是那么順其自然。比如容器(docker)技術的誕生,比如箭在弦上的創業,比如野...
閱讀 3046·2023-04-26 02:27
閱讀 2763·2021-11-22 13:54
閱讀 902·2021-11-12 10:36
閱讀 3753·2021-10-09 09:44
閱讀 3178·2021-10-09 09:41
閱讀 1223·2021-09-22 10:02
閱讀 2833·2019-08-30 15:56
閱讀 3104·2019-08-30 11:02