docker學習及專案應用實戰(五搭建自己的私有倉庫)

快樂架構發表於2021-01-02

引言

在 Docker 中,執行 docker pull xxx 的時候 ,它實際上是從 registry.hub.docker.com 這個地址去查詢,這就是Docker公司為我們提供的公共倉庫。在實際工作中,公司不太會允許把企業專案push到公有倉庫進行管理。所以為了更好的管理映象,Docker不僅提供了一箇中央倉庫,同時也允許我們搭建本地私有倉庫。搭建私有倉庫的方法有兩種registry、harbor。第一種方法是官方提供的一個搭建私有倉庫的映象 registry ,只需把映象下載下來,執行容器並暴露5000埠,就可以使用了。但這種方法命令簡單,但管理的功能上存在不足,所以我選擇了第二種方法。

搭建過程

下載
地址:https://github.com/goharbor/harbor/releases 目前版本是v2.1.2,不知道是家裡的網路問題,還是下載源限速(此可能性比較大),下載竟然需要7個小時,沒有耐心的我再次求助百度雲。只找到了1.1.2版本,勉強用吧。

配置
解壓下載的安裝包 harbor-offline-installer-v1.1.2.tgz

tar -xvf harbor-offline-installer-v1.1.2.tgz
修改 harbor.cfg

#hostname 改為本地ip,可以不指定埠
hostname = 192.168.31.143:2080

執行./install.sh即可構建映象,並把服務啟動起來:

#./install.sh

harbor的停止:

#/usr/local/bin/docker-compose stop

常見問題解決

問題一docker-compose未安裝

安裝harbor時出現docker-compose未安裝的錯誤。
在這裡插入圖片描述
安裝docker-compose非常簡單,首先保證伺服器上安裝了pyton,docker-compose已經不支援python2的版本了,用python2安裝後執行會報錯,早期版本的linux自帶的python都是python2,所以需要先裝一個python3,然後輸入一下命令:

#pip install docker-compose

安裝的時間會比較長,耐心等等,預設安裝目錄在 /usr/local/bin/目錄下,安裝後執行一下命令檢查結果:

#docker-compose --version
docker-compose version 1.27.4, build unknown

中間還遇到用pyton2安裝的各種問題,建議就不要去挑戰了,裝個python3解決一切問題。

問題2 harbor 埠占用問題(埠對映)

harbor預設埠是80,但是我的80埠已經被git倉庫佔用了。所以在安裝啟動的時候失敗,報錯為:埠被佔用。所以我將埠修改為2080。
第一次嘗試修改harbor.cfg檔案

#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 = 127.0.0.0:2020

儲存後,重新啟動hardor,仍然不成功,報埠被佔用,尷尬了。

第二次嘗試在hardor目錄下修改docker-compose.yml檔案將8080埠對映為2080埠:

#vi docker-compose.yml

proxy:
    image: nginx:1.11.5
    container_name: nginx
    restart: always
    volumes:
      - ./common/config/nginx:/etc/nginx
    ports:
      - 2080:80
      - 443:443
    depends_on:
      - mysql
      - registry
      - ui
      - log

儲存後,重啟,總算大功告成,但是此時要提醒,第一步將埠改成2020,是沒有用的,而且在啟動的時候還會出現一下程式碼片段,是及其具有迷惑性的,實際訪問的埠應該是2080,所以第一步的修改是非常多餘和錯誤的(這個埠或許是有用的,後面使用的時候會再做介紹)。

✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://ip:2020 . 
For more details, please visit https://github.com/vmware/harbor .

相關文章