Docker 官方的 docker registry 是
Docker Hub,以金融業來說,不可能將 docker image 放到公司外部,自建一個私有的 docker registry 就成為必要的需求,Harbor 是許多選項之一,也是目前最流行的選項之一,底下是安裝的步驟。
- 下載 & 解壓縮
- 從 git hub 上下載
- 解壓縮: tar xzvf harbor-offline-installer-v1.10.2.tgz
我的 home 目錄是 /home/steven,解壓縮後檔案在 /home/steven/harbor。
- cd harbor
- 設定 hosts
因為我希望 Harbor 的網址是 harbor.steven.idv.tw,所以在 /etc/hosts 中定義了:
192.168.0.120 harbor.steven.idv.tw
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 3650 -out ca.crt
openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.steven.idv.tw -out harbor.steven.idv.tw
建立一個名為 extfile.cnf 的網案,內容如下:
subjectAltName = IP:192.168.0.120
繼續產生憑證:
openssl x509 -req -days 3650 -in harbor.steven.idv.tw -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out harbor.steven.idv.tw
openssl req -new -x509 -text -key ca.key -out ca.cert
接著將產生的三個檔案 copy 到以下目錄 (沒有這個目錄就自己建立),不只 master node,所有 worker node 的該目錄也都要有這些檔案。
sudo cp *.crt *.key *.cert /etc/docker/certs.d/harbor.steven.idv.tw
hostname: harbor.steven.idv.tw
port: 80
certificate: /etc/docker/certs.d/harbor.steven.idv.tw/ca.crt
private_key: /etc/docker/certs.d/harbor.steven.idv.tw/ca.key
- 安裝 Harbor
執行 sudo ./install.sh --with-clair,執行過程沒有錯誤的話,打開瀏覽器,輸入 http://harbor.steven.idv.tw 應該可以看到如下畫面。(安裝前請先確定已經有安裝 docker-compose)
預設的帳號、密碼是 admin / Harbor12345,登入後畫面如下,點選 Administrator > Users,,按【+ NEW USER】新增一個 user 命名為 steven。
接著在「Projects」中新增一個命名為 home 的 project。
點選 home 於「Members」將剛剛新建立的 user steven 加入,這樣 steven 才能存取 home。
- 測試
測試前先修改 /etc/docker/daemon.json,如果沒有這個檔案,自行創建,在裡面加入如下內容:
{"insecure-registries": ["192.168.0.120"]}
然後重啟 docker
systemctl restart docker
登入 docker (steven / P@ssw0rd)
docker login harbor.steven.idv.tw
因為目前 docker 裡有個 image harbor.steven.idv.tw/home/host,如下:
所以可以用以下指令將 image 推送到 harbor 上。
docker push harbor.steven.idv.tw/home/host
檢查一下 harbor,確實已經推上去了,如下圖。
sudo docker-compose up -d
sudo docker-compose down
沒有留言:
張貼留言