Docker私有倉庫的搭建
平時我們執行docker pull xxx
的時候都是從預設的公共倉庫下載映象,實際在工作中,我們不能把企業專案push到公共倉庫,所以為了更好的管理映象,搭建一個本地的私有倉庫也很有必要,這裡主要介紹兩種方式搭建私有倉庫。
一、registry搭建
1、搭建
Docker官方有提供搭建私有倉庫的基礎映象registry,直接下載執行容器即可,注意容器預設使用的是5000埠,需要映射出去;預設將上傳的映象儲存在容器內的/var/lib/registry目錄下,需要將此目錄對映到主機上,避免資料丟失。
docker search registry
docker pull registry:latest
docker run -d -v /usr/local/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:latest
瀏覽器訪問http://{ip}:5000/v2,我是安裝在虛擬機器上,訪問http://192.168.2.17:5000/v2
即安裝完成!
2、使用驗證
將本地映象push到私有倉庫中來驗證一下
檢視本地映象:docker images
,我們選擇將postgres映象push
要通過docker tag
將該映象標誌為要推送到私有倉庫
docker tag postgres:11.8 localhost:5000/postgres:11.8
然後通過docker push
將標記後的映象推送至私有倉庫
docker push localhost:5000/postgres:11.8
之後訪問http://192.168.2.17:5000/v2/_catalog檢視私有倉庫目錄,確認是否上傳成功:
二、harbor的搭建
上述方法雖然簡單,但是在管理的功能上還有些不足,為此Docker官方還提供一個Harbor的服務,是一個用於儲存和分發Docker映象的企業級Registry伺服器,增加了一些安全、訪問控制、管理的功能以滿足企業對於映象倉庫的需求。
1、搭建
- 安裝要求
伺服器上要先安裝好docker和docker-compose,對於v2.1.0版本的要求文件中有要求說明,docker-compose的安裝和介紹會再做說明
-
下載
地址為: https://github.com/goharbor/harbor/releases ,本文下載的是v2.1.0 -
安裝配置
先vim /etc/docker/daemon.json
systemctl restart docker
[NOTE]
由於從docker1.3.2版本開始,使用registry時,必須使用TLS保證其安全。我們不用https的話,需要在客戶機中增加一個配置檔案將下載好的安裝包harbor-offline-installer-v2.1.0.tgz上傳伺服器並解壓
tar -xvf harbor-offline-installer-v2.1.0.tgz
建立配置檔案,
cp harbor.yml.tmpl harbor.yml
修改配置,vim harbor.ym
,主要修改http選項中的ip和埠進行安裝,
./prepare
&&./install.sh
最後顯示"✔ ----Harbor has been installed and started successfully.----"安裝成功,執行docker ps
檢視執行的容器檢視安裝完成後的目錄結構
安裝完成後有生成docker-compose.yml檔案,後續的服務的啟停等操作可以用docker-compose命令,如停止服務
docker-compose down
,啟動服務docker-compose up -d
等
2、登入驗證
-
訪問設定好的ip和埠,我的是http://192.168.2.17:9090
-
登入,預設的admin使用者密碼是Harbor12345,也可以在安裝的時候通過修改harbor.yml檔案來更改。
可以建立專案,建立使用者,給專案分配使用者等等,操作都很簡單 。
3、上傳映象
-
首先要登陸私有倉庫,可以使用admin或者建立好的擁有對應許可權的使用者
docker login -u admin -p Harbor12345 192.168.2.17:9090
-
上傳自己的映象
docker tag postgres:11.8 192.168.2.17:9090/library/postgres:11.8
,其中library是專案名稱,可以自己建立,我用的是預設的
docker push 192.168.2.17:9090/library/postgres:11.8
[NOTE]
若之前沒有配置/etc/docker/daemon.json檔案的話,這一步可能會出現報錯:Error response from daemon: Get https://192.168.2.17:9090/v2/: http: server gave HTTP response to HTTPS client登入網頁檢視
至此完成Harbor的簡單部署!