docker进阶-搭建私有企业级镜像仓库Harbor
為什么要搭建私有鏡像倉庫
??對于一個剛剛接觸Docker的人來說,官方的Docker hub是用于管理公共鏡像。既然官方提供了鏡像倉庫我們為什么還要去自己搭建私有倉庫呢?雖然也可以托管私有鏡像。我們可以非常方便的把我們自己鏡像推送上去,但是Docker hub提供的私有倉庫個數有限。對于個人來說Docker hub是個不錯的選擇,但是對于企業來說,相對于安全 ,成本和公司的架構來說搭建自己的私有鏡像倉庫才是正確的道路。
什么是Harbor?為什么要選擇Harbor
??Harbor是一個用于存儲和分發Docker鏡像的企業級Registry服務器,通過添加一些企業必需的功能特性,例如安全、標識和管理等,擴展了開源Docker Distribution。作為一個企業級私有Registry服務器,Harbor提供了更好的性能和安全。提升用戶使用Registry構建和運行環境傳輸鏡像的效率。Harbor支持安裝在多個Registry節點的鏡像資源復制,鏡像全部保存在私有Registry中, 確保數據和知識產權在公司內部網絡中管控。另外,Harbor也提供了高級的安全特性,諸如用戶管理,訪問控制和活動審計等。
- 基于角色的訪問控制 - 用戶與Docker鏡像倉庫通過“項目”進行組織管理,一個用戶可以對多個鏡像倉庫在同一命名空間(project)里有不同的權限。
- 鏡像復制 - 鏡像可以在多個Registry實例中復制(同步)。尤其適合于負載均衡,高可用,混合云和多云的場景。
- 圖形化用戶界面 - 用戶可以通過瀏覽器來瀏覽,檢索當前Docker鏡像倉庫,管理項目和命名空間。
- AD/LDAP 支持 - Harbor可以集成企業內部已有的AD/LDAP,用于鑒權認證管理。
- 審計管理 - 所有針對鏡像倉庫的操作都可以被記錄追溯,用于審計管理。
- 國際化 - 已擁有英文、中文、德文、日文和俄文的本地化版本。更多的語言將會添加進來。
- RESTful API - RESTful API 提供給管理員對于Harbor更多的操控, 使得與其它管理軟件集成變得更容易。
部署簡單 - 提供在線和離線兩種安裝工具, 也可以安裝到vSphere平臺(OVA方式)虛擬設備。
這就是官網原話。完美解釋了什么是Harbor?為什么要選擇Harbor。上面解釋那么多的Harbor, 現在我們來開始安裝吧。Harbor安裝
??要安裝Harbor,有以下幾個先決條件:
????Python版本大于或者等于2.7
????Docker engine的版本大于等于1.10
????Docker Compose的版本大于1.6.0
??首先我們需要檢查自己服務器是否支持上面3個條件。輸入以下代碼檢查
#python2.7官網安裝頁面 https://www.python.org/downloads/release/python-2711/ #檢查Python版本.Ubuntu 16.04已經集成了python2.7。 python -V #檢查Docker的版本 docker -v #Docker Compose安裝腳本 sudo curl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #檢查Docker Compose的版 docker-compose --version #如果提示Permission denied。執行以下語句賦權 sudo chmod +x /usr/local/bin/docker-compose??確保服務器上的軟件版本已經滿足以上要求之后。我們現在開始安裝Harbor。如果不知道怎么安裝docker 可以參考我博客之前的文章。傳送門
下載Harbor
#下載安裝包 wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz #解壓 tar -xzf harbor-offline-installer-v1.1.2.tgz cd harbor #編輯配置文件 vi harbor.cfg配置文件注釋參考
## Configuration file of Harbor#設置訪問地址,支持IP,域名,主機名,禁止設置127.0.0.1 hostname = reg.mydomain.com#訪問方式,http或者https ui_url_protocol = http#郵件通知相關設置 email_server = smtp.mydomain.com email_server_port = 25 email_username = sample_admin@mydomain.com email_password = abc email_from = admin <sample_admin@mydomain.com> email_ssl = false#用戶登錄密碼 harbor_admin_password = Harbor12345#harbor認證模式,默認為db_auth,本地mysql,也可以配置ldap認證 auth_mode = db_auth#ldap認證配置 ldap_url = ldaps://ldap.mydomain.com ldap_basedn = ou=people,dc=mydomain,dc=com ldap_uid = uid ldap_scope = 3 #mysql數據庫設置 db_password = root123 self_registration = on use_compressed_js = on max_job_workers = 3 token_expiration = 30 verify_remote_cert = on customize_crt = on#顯示的認證及組織信息 crt_country = CN crt_state = State crt_location = CN crt_organization = organization crt_organizationalunit = organizational unit crt_commonname = example.com crt_email = example@example.com project_creation_restriction = everyone#SSL證書地址。只有開啟https訪問才生效 ssl_cert = /data/cert/server.crt ssl_cert_key = /data/cert/server.key #############??以上按照自己需求修改。如果想開啟https模式訪問需要自己申請ssl證書。harbor默認監聽80端口。如果需要修改端口。請修改目錄下的docker-compose.yml文件,
修改完成之后。運行
??進行安裝。安裝完成之后他會自己啟動。這里他會自己下載一些他所需的images。過程有點慢??梢酝ㄟ^阿里云的鏡像加速器來加速。阿里云鏡像加速器 .打開鏈接登錄之后點擊鏡像加速。然后你會得到一個專屬加速地址。如圖
可以根據自己的環境查看文檔安裝使用。然后等待命令執行結束。
開啟https
??如果使用http的這里可以跳過,我們把已經申請好的證書文件放到/data/cert 目錄下面。然后修改harbor.cfg文件
??安裝成功之后打開之前自己設定的域名或者IP地址。測試地址 。測試用戶名:harbor_test,測試密碼:Harbor_test123
使用harbor
創建用戶
harbor已經創建成功?,F在我們來開始創建一個用戶。
創建項目
創建項目,并添加用戶
上傳鏡像
??首先使用docker login命令登錄:
#登錄 robin:~ robin$ sudo docker login shepherd618.cn Username: admin Password: Login Succeeded #查看本地鏡像 robin:docker_demo robin$ sudo docker images Password: REPOSITORY TAG IMAGE ID CREATED SIZE docker_demo latest fdd994bee741 19 seconds ago 283MB node 8.9-alpine 406f227b21f5 2 weeks ago 68.1MB #給dcoker_demo新增tag robin:docker_demo robin$ sudo docker tag docker_demo shepherd618.cn/test/demo #push images robin:docker_demo robin$ docker push shepherd618.cn/test/demo The push refers to repository [shepherd618.cn/test/demo] f8387a884f73: Layer already exists d74f9d9e7013: Pushed f846841ed47f: Layer already exists 0198944a9875: Layer already exists 9dfa40a0da3b: Layer already exists latest: digest: sha256:5b33acc5edf6f48cbd8e7ccd216daa4a7da1ebd4871fbc68bc2517136f1ccf44 size: 1374然后打開harbor,會看到剛剛上傳的images和操作日志
當我們需要用到這個images的時候可以通過上面給的pull命令下載到本地。到此整個安裝過程結束。
轉載于:https://www.cnblogs.com/pass245939319/p/8542177.html
總結
以上是生活随笔為你收集整理的docker进阶-搭建私有企业级镜像仓库Harbor的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: laravel 服务提供者介绍和使用
- 下一篇: 100. Same Tree同样的树