Harbor是用於存儲和分發Docker鏡像的鏡像倉庫服務,相比Docker Registry,Harbor在安全、標識、管理等方面作了加強,更適合企業使用;nginx
今天要部署的Harbor版本是<font color="blue">1.9.0</font>,本次部署用的機器信息以下:git
Harbor官方提供了在線和離線兩種安裝方式,考慮到企業服務器有可能沒法訪問外網,所以選擇離線安裝更加實用;github
tar -zxvf harbor-offline-installer-v1.9.0.tgz
解壓的結果是個名爲<font color="blue">harbor</font>的文件夾,進入該文件夾;web
Creating network "harbor_harbor" with the default driver Creating harbor-log ... done Creating registryctl ... done Creating registry ... done Creating harbor-db ... done Creating redis ... done Creating harbor-portal ... done Creating harbor-core ... done Creating nginx ... done Creating harbor-jobservice ... done ✔ ----Harbor has been installed and started successfully.---- Now you should be able to visit the admin portal at http://192.168.50.167. For more details, please visit https://github.com/goharbor/harbor .
[root@vostro ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dac02ab21a1f goharbor/harbor-jobservice:v1.9.0 "/harbor/harbor_jobs…" 3 hours ago Up 3 hours (healthy) harbor-jobservice 998fa5676a08 goharbor/nginx-photon:v1.9.0 "nginx -g 'daemon of…" 3 hours ago Up 3 hours (healthy) 0.0.0.0:80->8080/tcp nginx bc87d9a5a7f7 goharbor/harbor-core:v1.9.0 "/harbor/harbor_core" 3 hours ago Up 3 hours (healthy) harbor-core ce495560ef35 goharbor/harbor-db:v1.9.0 "/docker-entrypoint.…" 3 hours ago Up 3 hours (healthy) 5432/tcp harbor-db 25a13fddd607 goharbor/harbor-portal:v1.9.0 "nginx -g 'daemon of…" 3 hours ago Up 3 hours (healthy) 8080/tcp harbor-portal b9f72d4da022 goharbor/redis-photon:v1.9.0 "redis-server /etc/r…" 3 hours ago Up 3 hours (healthy) 6379/tcp redis 3804003153ae goharbor/harbor-registryctl:v1.9.0 "/harbor/start.sh" 3 hours ago Up 3 hours (healthy) registryctl d8d570e88874 goharbor/registry-photon:v2.7.1-patch-2819-v1.9.0 "/entrypoint.sh /etc…" 3 hours ago Up 3 hours (healthy) 5000/tcp registry 2d940d7fd271 goharbor/harbor-log:v1.9.0 "/bin/sh -c /usr/loc…" 3 hours ago Up 3 hours (healthy) 127.0.0.1:1514->10514/tcp harbor-log
接下來咱們要驗證Harbor服務是否可用,驗證方式是從另外一臺Linux電腦(下面稱之爲A電腦)遠程推送鏡像到Harbor機器; Harbor默認是不容許http鏈接的,這裏能夠修改設置來支持http鏈接,以便後續的驗證操做;redis
{ "insecure-registries":["192.168.50.167"] }
systemctl daemon-reload && systemctl restart docker
再次提醒:<font color="red">這裏修改是遠程鏈接Harbor服務的機器的配置,而不是Harbor服務器的配置;</font>docker
接下來驗證Harbor的服務,在A電腦上嘗試將本機的鏡像推送到Harbor;shell
root@hedy:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE jenkinsci/blueocean 1.19.0 11e2757c8bc1 7 days ago 553MB
docker tag 11e2757c8bc1 192.168.50.167/library/jenkinsci/blueocean:1.19.0
上述命令中,192.168.50.167是安裝harbor的時候,harbor.yml文件中配置的hostname的值,library是harbor默認的項目名稱; 3. 執行如下命令便可從A電腦登陸Harbor:json
docker login 192.168.50.167 -u admin -p Harbor12345
root@hedy:~# docker push 192.168.50.167/library/jenkinsci/blueocean:1.19.0 The push refers to repository [192.168.50.167/library/jenkinsci/blueocean] 2963284ab4ce: Pushing [================================================> ] 58.27MB/60.25MB c4a4de444fad: Pushing [========> ] 47.87MB/267.6MB 850b4f512dc8: Pushed abdaf43f94b6: Pushed a6a27b82134d: Pushed d6bee87a74b8: Pushed 28c6bdb5fda9: Pushed bb25d1c7cc8a: Pushed e2419390abaa: Pushing [========================> ] 37.29MB/77.36MB d6982687f77e: Pushed c9659702491d: Pushed ed4e100c24a1: Pushing [==========================================> ] 36.71MB/43.37MB ceaf9e1ebef5: Pushing [======> ] 12.58MB/99.29MB 9b9b7f3d56a0: Waiting f1b5933fe4b5: Waiting