国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

使用Harbor構建私有Docker鏡像倉庫

開發 開發工具
AD/LDAP集成、以及審計日志(Audit logging) 等企業用戶需求的功能,同時還原生支持中文。Harbor的每個組件都是以Docker容器的形式構建的,使用Docker Compose來對它進行部署。

簡介

Harbor是VMware公司最近開源的企業級Docker Registry項目, 項目地址為https://github.com/vmware/harbor 其目標是幫助用戶迅速搭建一個企業級的Docker registry服務。它以Docker公司開源的registry為基礎,提供了管理UI, 基于角色的訪問控制(Role Based Access Control),AD/LDAP集成、以及審計日志(Audit logging) 等企業用戶需求的功能,同時還原生支持中文。Harbor的每個組件都是以Docker容器的形式構建的,使用Docker Compose來對它進行部署。用于部署Harbor的Docker Compose模板位于 /Deployer/docker-compose.yml,由5個容器組成:

  • Proxy: 由Nginx 服務器構成的反向代理。
  • Registry:由Docker官方的開源registry 鏡像構成的容器實例。
  • UI: 即架構中的core services, 構成此容器的代碼是Harbor項目的主體。
  • Mysql: 由官方MySql鏡像構成的數據庫容器。
  • Log: 運行著rsyslogd的容器,通過log-driver的形式收集其他容器的日志。

這幾個容器通過Docker link的形式連接在一起,在容器之間通過容器名字互相訪問。對終端用戶而言,只需要暴露proxy (即Nginx)的服務端口。

快速部署方法

Harbor使用Docker-compose部署,后續所有的配置以及部署均在$HARBOR_HOME/Deploy/`目錄下完成,因此若無特別說明,工作目錄都在該目錄下。

首先需要進行簡單的配置,配置文件為harbor.cfg,配置項如下:

  • hostname:hostname為外部可訪問的地址,即bind addr,通常設置為本地公有IP,若內部使用DNS,可設置為主機名。
  • auth_mode:Harbor支持兩種認證方式,默認為本地存儲,即賬號信息存儲在mysql下,本文先使用本地存儲方式,另外一種認證方式LDAP將在后續章節單獨介紹。

設置完畢后,配置文件為:

  1. hostname = 42.62.x.x 
  2. ui_url_protocol = http 
  3.  
  4. #email_server = smtp.mydomain.com 
  5. #email_server_port = 25 
  6. #email_username = sample_admin@mydomain.com 
  7. #email_password = abc 
  8. #email_from = admin <sample_admin@mydomain.com> 
  9.  
  10. ##The password of Harbor admin, change this before any production use. 
  11. harbor_admin_password= admin 
  12.  
  13. ##By default the auth mode is db_auth, i.e. the credentials are stored in a local database
  14. #Set it to ldap_auth if you want to verify a user credentials against an LDAP server. 
  15. auth_mode = ldap_auth 
  16.  
  17. #The password for the root user of mysql db, change this before any production use. 
  18. db_password = root123 
  19. #Switch for self-registration feature 
  20. self_registration = on 

運行./prepare腳本更新配置。完成配置后,就可以使用docker-compose快速部署harbor:

  1. docker-compose up -d 

安裝完成后,訪問Web UI,地址:http://bind_addr,即配置的hostname地址,端口為80。如圖:

使用harbor

Web UI

安裝完成后,打開Web UI,點擊登錄,默認賬戶admin/Harbor12345,登錄成功后進入項目管理界面:

用戶可以點擊“我的項目”進行項目管理,比如新建項目、用戶以及權限管理等。點擊項目名稱,進入該項目下的鏡像管理界面,可以查看、檢索鏡像。

docker client

以上是UI界面的使用,接下來介紹如何使用docker client進行鏡像的管理,由于harbor只支持Registry V2 API,因此Docker client版本必須>= 1.6.0。

由于我們配置認證服務使用的是http,Docker認為是不安全的,要使用我們部署的鏡像倉庫,需要配置本地docker,修改配置文件(/etc/default/docker)為:

  1. DOCKER_OPTS="$DOCKER_OPTS --insecure-registry 42.62.x.x" 

其中42.62.x.x是我們部署Harbor的地址,即hostname配置項值。配置完后需要重啟docker服務。

驗證能否登錄:

  1. docker login 42.62.x.x 
  2. # docker login -u admin -p Harbor12345 -e test@gmail.com 42.62.x.x 

登錄成功后顯示如下:

接下來我們上傳一個鏡像,以ubuntu鏡像為例,首先從docker hub拉取ubuntu鏡像:

  1. docker pull ubuntu:14.04 

然后為該鏡像打上新的標簽,標簽格式為:Harbor地址/項目名/鏡像名稱:鏡像標簽,如42.62.x.x/library/ubuntu:14.04:

  1. docker tag ubuntu:14.04 42.62.x.x/library/ubuntu:14.04 

push我們的鏡像到harbor倉庫中:

  1. docker push ubuntu:14.04 42.62.x.x/library/ubuntu:14.04 

push成功后,我們就可以從harbor倉庫中使用docker pull拉取我們的鏡像了,注意如果是私有項目,必須先使用docker login登錄:

  1. docker pull 42.62.x.x/library/ubuntu:14.04 

使用harbor作為mirror registry

Mirror Registry簡介

Mirror是Docker Registry的一種特殊類型,它起到了類似代理服務器的緩存角色,在用戶和Docker Hub之間做Image的緩存。 官方定義為:

Such a registry is provided by a third-party hosting infrastructure but is targeted at their customers only. Some mechanism ensures that public images are pulled from a sponsor registry to the mirror registry, to make sure that the customers of the third-party provider can docker pull those images locally.

其基本工作原理是,當用戶pull一個鏡像時,若鏡像在mirror 服務器存在,則直接從mirror服務器拉取,否則若不存在該鏡像,則由mirror server自動代理往dockerhub(可配置)中拉取鏡像,并緩存到mirror服務器中,當客戶再次拉取這個鏡像時,直接從mirror server中拉取,不需要再次從dockerhub中拉取。

注意Mirror跟Private Registry有本質區別

Private Registry是開發者或者企業自建的Image存儲庫,通常用來保存企業內部的Docker Image,用于內部開發流程和產品的發布、版本控制。Mirror是一種代理中轉服務,我們提供的Mirror服務,直接對接Docker Hub的官方Registry,Docker Hub上有數以十萬計的各類Docker Image。在使用Private Registry時,需要在Docker Pull,或Dockerfile中直接鍵入Private Registry的地址,通常這樣會導致跟Private Registry的綁定,缺少靈活性。

原理如圖:

Harbor目前不支持pull cache功能,已提交issue #120。不過我們只需要手動修改下配置即可完成,具體配置可參考官方Registry as a pull through cache.

我們在運行./prepare之前修改config/registry/config.yml文件,追加以下配置:

  1. proxy:  
  2. remoteurl: https://registry-1.docker.io 

如果需要訪問私有倉庫,需要填寫dockerhub的用戶名和密碼:

  1. proxy: 
  2.   remoteurl: https://registry-1.docker.io 
  3.   username: [username] 
  4.   password: [password

然后重新啟動harbor服務:

  1. # 注意不要執行./prepare 
  2. docker-compose stop 
  3. docker-compose rm -f 
  4. docker-compose up -d 

除了設置harbor(或者registry),還需要配置本地docker服務,指定--registry-mirror參數,修改docker配置文件(/etc/default/docker):

  1. DOCKER_OPTS="$DOCKER_OPTS --registry-mirror=http://42.62.x.x --insecure-registry 42.62.x.x" 

注意替換42.62.x.x為你的registry地址。

注意:修改了docker配置文件,必須重啟docker服務才能生效。

harbor由于引進了認證功能,因此push操作時,必須保證project存在,比如push krystism/ffmpeg,必須保證harbor創建了krystism project,否則會失敗。為了能夠正常push/pull dockerhub的官方鏡像,務必創建library project,如圖:

假設本地不存在python鏡像:

  1. docker pull python # pull from dockerhub 
  2. docker rmi python # remove the image 
  3. docker pull python # yes, it will pull from harbor now 

我們***次pull python后,harbor發現不存在該鏡像,于是自己作為代理往dockerhub里拉取,拉取后保存到本地,可以通過WebUI查看??蛻舳嗽俅卫ython鏡像時,由于harbor已經存在該鏡像,因此不需要再往dockerhub拉取,速度大幅度提高!

對接LDAP認證

Harbor支持兩種認證方式,默認為本地存儲,即賬號信息存儲在mysql下,上文已經具體介紹。接下來介紹另外一種認證方式LDAP,只需要修改配置文件即可。需要提供ldap url以及ldap basedn參數,并且設置auth_mode為ldap_auth。

快速部署LDAP服務

為了測試方便,我們使用docker啟動一個LDAP服務器,啟動腳本如下:

  1. #!/bin/bash 
  2. NAME=ldap_server 
  3. docker rm -f $NAME 2>/dev/null 
  4. docker run --env LDAP_ORGANISATION="Unitedstack Inc." --env LDAP_DOMAIN="ustack.com" \ 
  5.  --env LDAP_ADMIN_PASSWORD="admin_password" -v `pwd`/containers/openldap/data:/var/lib/ldap -v `pwd`/containers/openldap/slapd.d:/etc/ldap/slapd.d --detach --name $NAME  osixia/openldap:1.1.2 

創建新用戶,首先需要定義ldif文件,new_user.ldif:

  1. dn: uid=test,dc=ustack,dc=com 
  2. uid: test 
  3. cn: test 
  4. sn: 3 
  5. objectClass: top 
  6. objectClass: posixAccount 
  7. objectClass: inetOrgPerson 
  8. loginShell: /bin/bash 
  9. homeDirectory: /home/test 
  10. uidNumber: 1001 
  11. gidNumber: 1001 
  12. userPassword: 1q2w3e4r 
  13. mail: test@example.com 
  14. gecos: test 

通過以下腳本創建新用戶,其中ldap_server為LDAP服務容器名稱。

  1. docker cp new_user.ldif ldap_server:/  
  2. docker exec ldap_server ldapadd -x -D "cn=admin,dc=ustack,dc=com" -w admin_password -f /new_user.ldif -ZZ 

查看用戶是否創建成功:

  1. docker exec ldap_server ldapsearch -x -h localhost -b dc=ustack,dc=com -D "cn=admin,dc=ustack,dc=com" -w admin_password 

檢查test用戶是否存在,若存在,則說明創建成功,否則需要使用docker logs查看日志。

配置harbor使用LDAP認證

修改harbor.cfg文件關于LDAP配置項,如下:

  1. auth_mode = ldap_auth 
  2. ldap_url = ldap://42.62.x.x 
  3. ldap_basedn = uid=%s,dc=ustack,dc=com 

然后重新部署harbor:

  1. ./prepare 
  2. docker-compose stop 
  3. docker-compose rm -f 
  4. docker-compose up -d 

測試是否能夠使用test用戶登錄:

  1. docker login -u test -p 1q2w3e4r -e test@example.com 42.62.x.x 

查看結果。

【本文是51CTO專欄作者“付廣平”的原創文章,如需轉載請通過51CTO獲得聯系】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2024-01-22 09:12:51

2022-07-11 07:37:55

HarborContainerd

2020-08-07 17:03:24

私有鏡像倉庫

2022-09-16 10:19:36

HarborContainerd

2020-09-18 07:59:44

GitLabCI

2019-08-18 23:46:52

私有云容器鏡像倉庫

2023-03-30 07:35:55

2024-05-15 11:09:30

2024-02-20 08:08:43

2025-11-18 09:44:55

2022-12-08 19:27:38

2021-08-23 08:30:30

Docker BuildKit 架構

2022-09-15 10:03:42

Jaeger分布式追蹤系統

2025-12-23 06:05:00

systemdHarbor

2025-11-17 09:36:23

Harbor開源Docker

2021-05-10 08:58:09

Harbor架構Registry 服務

2023-02-13 23:52:18

2017-11-07 06:28:11

2021-10-20 07:18:51

Harbor鏡像項目

2019-10-16 10:08:58

DockerLinuxWindows
點贊
收藏

51CTO技術棧公眾號

九色porny蝌蚪视频在线观看| 自拍视频在线观看一区二区| 国产福利一区二区三区视频在线| 日韩一区二区三区在线| 亚洲视频电影| 懂色av一区二区| 亚洲一区二区三区自拍| 亚洲国产一区二区三区在线| 国产在线播放精品| 日韩一区二区精品在线观看| 丰满的少妇愉情hd高清果冻传媒| 久久综合社区| 亚洲国产又黄又爽女人高潮的| 熟女性饥渴一区二区三区| 亚洲精品一区二区妖精| 美女福利视频一区| 欧美日本韩国一区二区| 国产精品伊人色| 51午夜精品| 天堂成人娱乐在线视频免费播放网站 | 国产精品视频免费观看| 国产区一区二| 在线电影中文日韩| 黄色在线观看网站| 天天综合网天天综合色| 国产高潮av| 中文文精品字幕一区二区| 亚洲激情一区二区| 亚洲欧洲一级| 国产精品免费网站| 国产91久久精品一区二区| 久久精品视频导航| 网站一区二区| 久久天天躁日日躁| 日本亚洲欧洲无免费码在线| 亚洲欧美日韩在线一区| 女厕盗摄一区二区三区| 精品亚洲va在线va天堂资源站| 男人添女人下部高潮视频在线观看| 欧美精品视频www在线观看| 极品粉嫩饱满一线天在线| 在线精品视频免费观看| 麻豆视频在线观看免费网站| 欧美一区二区在线免费播放| 在线免费av导航| 91国产美女视频| 在线成人国产| 成人毛片100部免费看| 亚洲视频 欧洲视频| 国产女主播在线写真| 国产视频综合在线| 蜜桃国内精品久久久久软件9| 99视频在线| 91在线播放网址| 亚洲精品套图| 欧美一个色资源| 精品精品国产毛片在线看| 成人福利视频网| 国精产品一区一区三区mba视频| 污污的网站18| 欧美一卡在线观看| 伊人久久一区| 久久影院理伦片| 国产三级欧美三级日产三级99| 色综合成人av| 精品国产一区二区三区久久狼5月| 四虎成人av| 欧美精品久久久久久久自慰| 欧美日韩一区二区三区四区五区 | 国产91在线高潮白浆在线观看| 亚洲一区日韩| 天堂影视av| 久久久久久久香蕉网| 国产在线视频一区二区| 五月天丁香婷| 久久久视频精品| 国产乱人伦偷精品视频免下载| 爱久久·www| 国产精品自产拍在线观| 91丨porny丨最新| 超碰97国产精品人人cao| 91精品国产综合久久久久久久久| 国产亚洲制服色| 性欧美freesex顶级少妇| 九色视频成人porny| 偷拍亚洲欧洲综合| 国产原创一区| 国产免费色视频| 亚洲第一黄色网| 日本亚洲最大的色成网站www| 国产最顶级的黄色片在线免费观看| 欧美大片欧美激情性色a∨久久| 国产黑丝在线一区二区三区| 久草在线视频福利| 国产高清一区视频| 久久久久久成人精品| 亚洲成人激情图| 精品国产乱码久久久久久婷婷| 国产精品亚洲成人| 中文字幕一区二区精品区| 51亚洲精品| 1234区中文字幕在线观看| 99视频入口| 日韩伦理在线免费观看| 99在线国产| 国产男女在线观看| 欧美色视频在线| 日韩视频不卡| 视频一区在线免费看| 熟女少妇在线视频播放| 国产精品久久久久久久午夜 | 隔壁老王国产在线精品| 精品国产精品三级精品av网址| 欧美三级午夜理伦三级中文幕| 九色porny丨国产首页在线| 日日碰狠狠躁久久躁婷婷| 国产美女精品在线观看| 九九精品在线播放| 欧美三级日韩三级国产三级| 激情av综合网| 欧美在线影院| 国产午夜亚洲精品一级在线| 成a人片在线观看www视频| 国产免费一区二区三区视频| 性色av一区二区三区免费| 极品少妇一区二区| 日韩精品成人| 日韩av电影免费在线| 欧美日韩国产一级片| 欧美成人激情| 久久综合久久色| 一区二区中文字幕| 99久久精品免费看国产免费软件| 日本欧美韩国国产| 91精品无人成人www| 国产一区二区三区欧美| www.豆豆成人网.com| 国产精品久久久久9999| 国产视频一区在线播放| 国产精品流白浆在线观看| 日日噜噜夜夜狠狠视频| 91嫩草在线视频| 中文字幕欧美一区| 999久久久精品一区二区| 国产视频三区| 久久综合九色99| 日韩在线视频网站| 国产精品女上位| 久久这里只有精品首页| 久久久天堂av| 91丨porny丨户外露出| 国产91丝袜在线观看| 欧美日韩黄色| 日韩av首页| 自拍在线观看| 国产日韩在线观看视频| www.成人av.com| 欧美日韩精品免费观看视频| 国产亚洲毛片在线| 91超碰在线免费| 国内精品国产三级国产99| 久久综合伊人77777尤物| 国产精品私人影院| 我不卡伦不卡影院| 免费看电影在线| 国产精品宾馆在线精品酒店| 国产91在线播放九色快色| 一本色道久久综合亚洲精品按摩| 免费亚洲一区| 亚洲精品三区| 视频在线91| 一本久道久久综合| 欧美黑人xxxx| 欧美性色黄大片手机版| 国产激情91久久精品导航| 日韩av黄色在线| 成人午夜电影在线观看| 大地资源网在线观看免费官网| 欧美激情18p| 欧美日韩黄视频| 久久婷婷成人综合色| 欧美777四色影| 欧美成人精品三级网站| 日韩亚洲在线视频| 亚洲一区美女视频在线观看免费| 精品国产露脸精彩对白| 国产免费成人在线视频| 在线成人h网| 91欧美日韩在线| 成人福利在线观看视频| 十八禁视频网站在线观看| 91精品国产综合久久久久久丝袜| 亚洲小视频在线观看| 欧美日韩久久久久| 高清国产一区二区三区| 91精品啪在线观看国产18 | 国产精品久久夜| 在线不卡亚洲| 99re热精品视频| 青青青草视频在线|