您好,登錄后才能下訂單哦!
Docker Registry--harbor安裝和簡單使用szyd ,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
簡單的說,Harbor 是一個企業級的 Docker Registry,可以實現 images 的私有存儲和日志統計權限控制等功能,并支持創建多項目(Harbor 提出的概念),基于官方 Registry V2 實現。
執行以下命令安裝 Docker
curl -fsSL https://get.docker.io | bash
默認的 官方文檔 安裝命令如下 :
curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
有能力的童鞋可以使用梯子,我已經下載好了一個點擊下載 ;下載后直接 cp 到/usr/local/bin
下并給與可執行權限即可。
git clone https://github.com/vmware/harbor
cd harbor/Deploy/ vim harbor.cfg
配置樣例如下 :
## Configuration file of Harbor #The IP address or hostname to access admin UI and registry service. #DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients. # 指定 hostname,一般為IP,或者域名,用于登錄 Web UI 界面 hostname = 10.211.55.17 #The protocol for accessing the UI and token/notification service, by default it is http. #It can be set to https if ssl is enabled on nginx. # URL 訪問方式,SSL 需要配置 nginx ui_url_protocol = http #Email account settings for sending out password resetting emails. # 郵件相關信息配置,如忘記密碼發送郵件 email_server = smtp.xxxxxx.com email_server_port = 465 email_username = reg@mritd.me email_password = xxxxxx email_from = docker <reg@mritd.me> email_ssl = true ##The password of Harbor admin, change this before any production use. # 默認的 Harbor 的管理員密碼,管理員用戶名默認 admin harbor_admin_password = Harbor12345 ##By default the auth mode is db_auth, i.e. the credentials are stored in a local database. #Set it to ldap_auth if you want to verify a user's credentials against an LDAP server. # 指定 Harbor 的權限驗證方式,Harbor 支持本地的 mysql 數據存儲密碼,同時也支持 LDAP auth_mode = db_auth #The url for an ldap endpoint. # 如果采用了 LDAP,此處填寫 LDAP 地址 ldap_url = ldaps://ldap.mydomain.com #The basedn template to look up a user in LDAP and verify the user's password. # LADP 驗證密碼的方式(我特么沒用過這么高級的玩意) ldap_basedn = uid=%s,ou=people,dc=mydomain,dc=com #The password for the root user of mysql db, change this before any production use. # mysql 數據庫 root 賬戶密碼 db_password = root123 #Turn on or off the self-registration feature # 是否允許開放注冊 self_registration = on #Turn on or off the customize your certicate # 允許自簽名證書 customize_crt = on #fill in your certicate message # 自簽名證書信息 crt_country = CN crt_state = State crt_location = CN crt_organization = mritd crt_organizationalunit = mritd crt_commonname = mritd.me crt_email = reg.mritd.me #####
cd harbor/Deploy/ ./prepare
cd harbor/Deploy/ docker-compose up -d
Proxy : 由Nginx 服務器構成的反向代理
Registry : 由Docker官方的開源registry 鏡像構成的容器實例
UI : 即架構中的core services, 構成此容器的代碼是Harbor項目的主體
Mysql : 由官方MySql鏡像構成的數據庫容器
Log : 運行著rsyslogd的容器,通過log-driver的形式收集其他容器的日志
harbor.cfg
中 hostname
地址,直接訪問即可,如下harbor.cfg
中 self_registration
屬性設置為 off
,那么普通用戶將無法自己實現注冊,只能由管理員創建用戶,主頁右上角的注冊按鈕也會消失。admin
,密碼在 harbor.cfg
中設置過,默認的是Harbor12345
,可直接登陸由于采用了默認的 http 方式連接,而 Docker 認為這是不安全的,所以在 push 之前需要調整一下 docker 配置,修改/lib/systemd/system/docker.service文件,添加--insecure-registry 172.16.80.182,重啟docker daemon 和service
(命令:systemctl daemon-reload 和 systemctl restart docker.service)。
ExecStart=/usr/bin/docker daemon -H fd:// --insecure-registry 172.16.81.99
其中 IP 地址要指向 harbor.cfg
中的 hostname
,然后執行 docker-compose stop
停掉所有 Contianer,再執行 service docker restart
重啟 Dokcer 服務,最后執行 docker-compose start
即可。
docker-compose start
時有一定幾率出現如下錯誤(或者目錄已存在等錯誤),此時在 docker-compose stop
一下然后在啟動即可,實在不行再次重啟 Dokcer 服務,千萬不要手賤的去刪文件(別問我怎么知道的)Project Admin
和 Developer
可以有 push 的權限,而Guest
只能查看和 pull首先使用一個對目標項目具有 push 權限的用戶登錄,以下 push 的目標是 mritd 項目,test1 用戶在項目里定義為 Developer
,所以登錄后 push 即可
然后 tag
一個 image,名稱一定要標準( registryAddress[:端口]/項目/imageName[:tag]
),最后將其 push 即可
(如果本地有的image,是不會去Registry庫中查找的!(查找順序是先找本地,后查找Registry庫,默認庫是docker hub)
設置首選Registry庫可以通過 --insecure-registry 參數指定。
image的格式是$registry_url/name:tag $registry_url是Registry庫的鏈接地址,pull push是通過這個地址來判斷的。
后面的端口號,可以通過加一個proxy來解決!
)
最后可在 Web UI 中查看剛剛 push 的 image
看完上述內容,你們掌握Docker Registry--harbor安裝和簡單使用szyd 的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。