您好,登錄后才能下訂單哦!
本篇內容介紹了“用Docker鏡像倉庫Harbor部署私有Mirror服務”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Harbor是VMware公司最近開源的企業級Docker Registry項目(https://github.com/vmware/harbor) 。其目標是幫助用戶迅速搭建一個企業級的Docker registry服務。它提供了管理UI, 基于角色的訪問控制(Role Based Access Control),AD/LDAP集成、以及審計日志(Audit logging) 等企業用戶需求的功能,同時還原生支持中文。Harbor的每個組件都是以Docker容器的形式構建的,使用Docker Compose來對它進行部署。
Harbor使用Docker-compose部署,后續所有的配置以及部署均在
$HARBOR_HOME/Deploy/
目錄下完成,因此若無特別說明,工作目錄都在該目錄下。
首先需要進行簡單的配置,配置文件為harbor.cfg,配置項如下:
hostname:hostname為外部可訪問的地址,即bind addr,通常設置為本地公有IP,若內部使用DNS,可設置為主機名。
auth_mode:Harbor支持兩種認證方式,默認為本地存儲,即賬號信息存儲在mysql下,本文先使用本地存儲方式,另外一種認證方式LDAP將在后續章節單獨介紹。
設置完畢后,配置文件為:
運行./prepare腳本更新配置。完成配置后,就可以使用docker-compose快速部署Harbor:
docker-compose up -d
安裝完成后,訪問Web UI,地址:http://bind_addr,即配置的hostname地址,端口為80。如圖:
接下來我們上傳一個鏡像,以ubuntu鏡像為例,首先從docker hub拉取ubuntu鏡像:
docker pull ubuntu:14.04
然后為該鏡像打上新的標簽,標簽格式為:Harbor地址/項目名/鏡像名稱:鏡像標簽,如:
docker tag ubuntu:14.04 \
42.62.x.x/library/ubuntu:14.04
push我們的鏡像到Harbor倉庫中:
docker push ubuntu:14.04 \
42.62.x.x/library/ubuntu:14.04
假設本地不存在python鏡像:
我們第一次pull python后,Harbor發現不存在該鏡像,于是自己作為代理往Docker Hub里拉取,拉取后保存到本地,可以通過Web UI查看。客戶端再次拉取python鏡像時,由于Harbor已經存在該鏡像,因此不需要再往Docker Hub拉取,速度大幅度提高!
Harbor支持兩種認證方式,默認為本地存儲,即賬號信息存儲在mysql下,上文已經具體介紹。接下來介紹另外一種認證方式LDAP,只需要修改配置文件即可。需要提供ldap url以及ldap basedn參數,并且設置auth_mode為ldap_auth。
快速部署LDAP服務
為了測試方便,我們使用Docker啟動一個LDAP服務器,啟動腳本如下:
NAME=ldap_server
docker rm -f $NAME 2>/dev/null
docker run --env LDAP_ORGANISATION="Unitedstack Inc.">
--env LDAP_DOMAIN="ustack.com" \
--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:
dn: uid=test,dc=ustack,dc=com
uid: test
cn: test
sn: 3
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
loginShell: /bin/bash
homeDirectory: /home/test
uidNumber: 1001
gidNumber: 1001
userPassword: 1q2w3e4r
mail: test@example.com
gecos: test
通過以下腳本創建新用戶,其中ldap_server為LDAP服務容器名稱。
docker cp new_user.ldif ldap_server:/
docker exec ldap_server ldapadd -x \
-D "cn=admin,dc=ustack,dc=com" \
-w admin_password \
-f /new_user.ldif -ZZ
查看用戶是否創建成功:
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配置項,如下:
auth_mode = ldap_auth
ldap_url = ldap://42.62.x.x
ldap_basedn = uid=%s,dc=ustack,dc=com
然后重新部署Harbor:
./prepare
docker-compose stop
docker-compose rm -f
docker-compose up -d
測試是否能夠使用test用戶登錄:
docker login -u test -p 1q2w3e4r \
-e test@example.com 42.62.x.x
“用Docker鏡像倉庫Harbor部署私有Mirror服務”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。