1. 程式人生 > >離線手動部署docker鏡像倉庫——harbor倉庫

離線手動部署docker鏡像倉庫——harbor倉庫

權限 visit doc nts epo compose ade point lin

前言&需求:

部署docker的鏡像倉庫harbor倉庫,如果是使用的rancher管理工具,可以直接在rancher的Catalog裏面找到harbor倉庫服務,填入相關的參數,一鍵部署即可。
技術分享圖片
但是本次部署的服務器,因為業務限制,不能連外網,不能使用catalog部署,就只能離線部署。本次記錄的是離線部署harbor倉庫的過程。

實驗環境:
harbor服務器系統:CentOS Linux release 7.4.1708 (Core)
harbor服務器IP:10.0.0.101
harbor版本:v1.5.0
另外為了測試pull鏡像,使用了另一臺test102機器:10.0.0.102

部署過程:

1、下載安裝包

下載地址:http://harbor.orientsoft.cn/

2、上傳並解壓安裝包

將下載下來的安裝包上傳到服務器的/home目錄,並解壓。

[root@test101 home]# tar xf harbor-offline-installer-v1.5.0.tgz 
[root@test101 home]# ll
總用量 843504
drwxr-xr-x. 4 root root       229 7月  30 15:48 harbor
-rw-r--r--. 1 root root 863747205 7月  30 15:39 harbor-offline-installer-v1.5.0.tgz
[root@test101 home]# 

3、配置harbor

3.1 編輯/home/habor/harbor.cfg,主要修改兩個地方:

hostname = 10.0.0.101   #這裏直接用的IP
harbor_admin_password = 123456   #登錄harbor倉庫的密碼,默認密碼是Harbor12345

4、安裝docker-compose

安裝命令:

 curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose  

因為本機器不能聯網,於是在其他機器將docker-compose下載下來再上傳到本機的 /usr/local/bin/目錄下,然後賦予x權限:

[root@test101 templates]# chmod +x /usr/local/bin/docker-compose      #給docker-compose添加執行權限,這一步不能漏掉
[root@test101 harbor]# ll /usr/local/bin/ |grep docker-compose
-rwxr-xr-x. 1 root root 7986086 7月  30 13:46 docker-compose
[root@test101 harbor]# 

檢查docker-compose是否安裝成功,可以查看一下版本號:

[root@test101 harbor]# docker-compose -version
docker-compose version 1.8.1, build 878cff1
[root@test101 harbor]# 

5、執行install.sh腳本,安裝harbor倉庫

註意:在執行install.sh腳本之前,先檢查兩個問題:

1)docker-compose是否安裝,否則在運行install.sh時會失敗,報錯“? Need to install docker-compose(1.7.1+) by yourself first and run this script again.”
2)docker服務是否正常運行,否則在運行install.sh會失敗,報錯“Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?”

運行安裝腳本:

[root@test101 harbor]# ./install.sh 

[Step 0]: checking installation environment ...
......                     #輸出過程省略
Creating nginx

? ----Harbor has been installed and started successfully.----       #提示安裝成功

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

6、檢查部署是否OK

6.1檢查容器啟動狀況,已經全部OK:

[root@test101 harbor]# docker ps -a
CONTAINER ID        IMAGE                                  COMMAND                  CREATED             STATUS                    PORTS                                                              NAMES
3d544a83d078        vmware/harbor-jobservice:v1.5.0        "/harbor/start.sh"       34 seconds ago      Up 14 seconds                                                                                harbor-jobservice
0d4d27c67d81        vmware/nginx-photon:v1.5.0             "nginx -g ‘daemon ..."   34 seconds ago      Up 31 seconds (healthy)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp   nginx
a258703ea6d9        vmware/harbor-ui:v1.5.0                "/harbor/start.sh"       37 seconds ago      Up 34 seconds (healthy)                                                                      harbor-ui
85e21f04fb3f        vmware/redis-photon:v1.5.0             "docker-entrypoint..."   39 seconds ago      Up 37 seconds             6379/tcp                                                           redis
f0cd3db1d2a7        vmware/harbor-db:v1.5.0                "/usr/local/bin/do..."   39 seconds ago      Up 36 seconds (healthy)   3306/tcp                                                           harbor-db
916f6513fcbd        vmware/harbor-adminserver:v1.5.0       "/harbor/start.sh"       39 seconds ago      Up 37 seconds (healthy)                                                                      harbor-adminserver
21dc6d054ad1        vmware/registry-photon:v2.6.2-v1.5.0   "/entrypoint.sh se..."   39 seconds ago      Up 37 seconds (healthy)   5000/tcp                                                           registry
ada393444d09        vmware/harbor-log:v1.5.0               "/bin/sh -c /usr/l..."   44 seconds ago      Up 39 seconds (healthy)   127.0.0.1:1514->10514/tcp                                          harbor-log
[root@test101 harbor]# 

6.2 界面訪問
技術分享圖片

登錄成功:
技術分享圖片

創建一個test項目:
技術分享圖片

構建一個鏡像並推送到倉庫:

[root@test101 harbor]#docker build -t 10.0.0.101/test/bigdatacenter:latest /usr/local/src/bigdatacenter/   #構建測試鏡像
[root@test101 harbor]# docker push 10.0.0.101/test/bigdatacenter:latest   #推送到倉庫

查看harbor倉庫的,測試鏡像已經推送成功:
技術分享圖片

查看pull命令,名找一臺測試機測試pull鏡像:
技術分享圖片
技術分享圖片

=============下面的操作在test102機器上進行=============

找一臺機器test102測試pull該鏡像:
首先配置該機器指向harbor倉庫所在地址10.0.0.101,然為了保證docker的配置文件生效,重啟一下test102機器的docker服務:
技術分享圖片

重啟test102docker服務:

[root@test102 ~]# systemctl restart docker

在test102機器上測試pull鏡像:

[root@test102 ~]# docker images    #test102機器還沒有任何的鏡像文件
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
[root@test102 ~]# 
[root@test102 ~]# docker pull 10.0.0.101/test/bigdatacenter:latest   從harbor倉庫拉取鏡像文件
Trying to pull repository 10.0.0.101/test/bigdatacenter ... 
latest: Pulling from 10.0.0.101/test/bigdatacenter
53478ce18e19: Pull complete 
d1c225ed7c34: Pull complete 
c6724ba0c09a: Pull complete 
5665f8d021a4: Pull complete 
8ae56d3ca4f6: Pull complete 
4e209be2644e: Pull complete 
Digest: sha256:07c467b4f8c6cfa306484bd060721fb621ddb1fd43f528ef5a0df1157d8bd853
Status: Downloaded newer image for 10.0.0.101/test/bigdatacenter:latest
[root@test102 ~]# docker images    #鏡像文件已經拉取成功
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
10.0.0.101/test/bigdatacenter   latest              d8660885a369        30 minutes ago      181 MB
[root@test102 ~]# 

至此,簡單的離線harbor倉庫就已經部署完成,並已經能夠正常使用了!

離線手動部署docker鏡像倉庫——harbor倉庫