7-Docker私有倉庫
阿新 • • 發佈:2021-07-13
1、Docker Registry分類
- Registry用於儲存docker映象,包括映象的層次結構和元資料
- 分類
-
Sponsor Registry:第三方red=gistry,供客戶和Docker社群使用
-
Mirror Registry:第三方,只供客戶使用
-
Vendor Registry:由釋出Docker映象的供應商提供的
-
Private Registry:通過設有防火牆和額外的安全層的私有實體提供的registry
-
2、建立Docker 私有倉庫
-
docker官方提供了一個私有倉庫的映象registry。
-
主機安裝
- 安裝部署
# yum -y install docker-registry # vim /etc/docker-distribution/registry/config.yml version: 0.1 log: fields: service: registry storage: cache: layerinfo: inmemory filesystem: rootdirectory: /var/lib/registry http: addr: :5000 # systemctl start docker-distribution # 啟動服務
- 驗證推送
# 檢視本地映象 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 540a289bab6c 2 weeks ago 126MB redis latest de25a81a5a0b 3 weeks ago 98.2MB # 通過docker tag將該映象標誌為要推送到私有倉庫: # docker tag nginx:latest localhost:5000/nginx:latest # 推送映象到私有倉庫 # docker push localhost:5000/nginx The push refers to repository [localhost:5000/nginx] a89b8f05da3a: Pushed 6eaad811af02: Pushed b67d19e65ef6: Pushed latest: digest: sha256:f56b43e9913cef097f246d65119df4eda1d61670f7f2ab720831a01f66f6ff9c size: 948
- 預設私有registry啟動為http協議,提交時可能會報錯,可設定為https或者設定為忽略https
# vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
"insecure-registries": ["localhost:5000"] # 增加
}
3、容器安裝
- docker pull
# docker pull registry:2 # docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2
4、Harbor
-
docker 官方提供的私有倉庫 registry,用起來雖然簡單 ,但在管理的功能上存在不足。 Harbor是一個用於儲存和分發Docker映象的企業級Registry伺服器,harbor使用的是官方的docker registry(v2命名是distribution)服務去完成。harbor在docker distribution的基礎上增加了一些安全、訪問控制、管理的功能以滿足企業對於映象倉庫的需求。
-
Harbor的部署一般分為兩種離線和線上
- Online installer: The online installer downloads the Harbor images from Docker hub. For this reason, the installer is very small in size.
- Offline installer: Use the offline installer if the host to which are are deploying Harbor does not have a connection to the Internet. The offline installer contains pre-built images so it is larger than the online installer.
-
Harbor官方github地址:https://github.com/goharbor/harbor/
-
特點
- 支援基於使用者的訪問控制
- 支援映象複製高可用
- 支援圖形化使用者介面
- 支援使用者認證管理
- 有豐富的Restful API
-
Harbor安裝
-
Harbor安裝執行需要藉助docker compose單機編排工具
- docker compose 可以輕鬆、高效的管理容器,它是一個用於定義和執行多容器 Docker 的應用程式工具
# yum -y install epel-release # yum -y install docker-compose
- 安裝Harbor
# tar -zxf harbor.v1.9.2.tar.gz # vim harbor.cfg hostname = 192.168.10.11 ui_url_protocol = https db_password = root123 max_job_workers = 3 customize_crt = on ssl_cert = /data/db/cert/www.biglittleant.cn.crt ssl_cert_key = /data/db/cert/www.biglittleant.cn.key secretkey_path = /data/db # sh ./install.sh
配置檔案解釋:
hostname
:配置主機名稱,不可以設定127.0.0.1,localhost這樣的主機名,ui_url_protocol
:指定使用HTTP協議還是HTTPS協議。Email settings
:設定harbor的郵箱。harbor_admin_password
:設定管理員的初始密碼auth_mode
:使用者認證模式,預設是db_auth,也可以使用ldap驗證。db_password
:使用db需要指定連線資料庫的密碼self_registration
:是否允許自行註冊使用者,預設是on,新版本可以在圖形介面中修改。max_job_workers
:最大工作數,預設是三個
重啟Harbor
# docker-compose stop # docker-compose up -d
-