鏡像倉庫 Harbor 離線安裝手冊

本文主要闡述如何在離線環(huán)境下安裝 Harbor 鏡像倉庫。

環(huán)境說明:

操作系統(tǒng):centos
harbor 版本:v1.5.0
docker 版本:docker-1.13.1-94
使用兩臺服務器,harbor 服務器用來安裝 harbor,客戶端服務器用來驗證和測試。

1蜜托、安裝準備

確保兩臺服務器都安裝了 docker,一般的云主機如騰訊云或者是阿里云自帶的 repos文件都有 docker 的 rpm包霉赡,所以一般情況下直接安裝即可橄务,除非有指定版本的需求。

yum install -y docker
systemctl enable docker.service
systemctl start docker.service
systemctl status docker.service

harbor 服務器需要下載 harbor 離線包 和 docker-compose 軟件包穴亏。

  • 下載 haobor 安裝包并解壓蜂挪,下載目錄為:/appdata
[root@master appdata]# pwd
/appdata
[root@master appdata]# wget http://harbor.orientsoft.cn/harbor-v1.5.0/harbor-offline-installer-v1.5.0.tgz
[root@master appdata]# du -sh harbor-offline-installer-v1.5.0.tgz
824M    harbor-offline-installer-v1.5.0.tgz
[root@master appdata]# tar -zxvf harbor-offline-installer-v1.5.0.tgz
[root@master appdata]# ls | grep harbor
harbor
harbor-offline-installer-v1.5.0.tgz
  • 下載 docker-compose 并安裝
[root@master /]# curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-\`uname -s\`-\`uname -m\` -o /usr/local/bin/docker-compose
[root@master /]# chmod +x /usr/local/bin/docker-compose
  • 驗證 docker-compose 是否安裝成功
[root@master /]# docker-compose -version
docker-compose version 1.24.0, build 0aa59064

2、修改 harbor 配置文件

  • 修改 harbor 服務端口
    harbor 默認使用 80 端口嗓化,但一般服務器上的 80 端口會被其他服務占用棠涮,可以修改 harbor 默認的端口,一般修改為 5000刺覆。
[root@master ~]# cd /appdata/harbor
[root@master harbor]# ls
common                    docker-compose.notary.yml  ha          harbor.v1.5.0.tar.gz  LICENSE  prepare
docker-compose.clair.yml  docker-compose.yml         harbor.cfg  install.sh            NOTICE
[root@master harbor]# cp docker-compose.yml docker-compose.yml.bak
[root@master harbor]# vim docker-compose.yml

    volumes:
      - ./common/config/nginx:/etc/nginx:z
    networks:
      - harbor
    ports:
      - 5000:80
      - 443:443
      - 4443:4443
  • 設置 hostname 和后臺管理賬戶 admin 的密碼
[root@master harbor]# cd /appdata/harbor
[root@master harbor]# ls
common                    docker-compose.notary.yml  ha          harbor.v1.5.0.tar.gz  LICENSE  prepare
docker-compose.clair.yml  docker-compose.yml         harbor.cfg  install.sh            NOTICE
[root@master harbor]# cp harbor.cfg harbor.cfg.bak
[root@master harbor]# vim harbor.cfg

hostname = 47.99.101.222:5000    # 其中 47.99.101.222 是云主機IP
harbor_admin_password = Harbor@123456  # 密碼按需修改

3严肪、安裝 harbor

  • 安裝前,檢查是否滿足兩個必要條件:
    1) docker 服務是否已安裝谦屑,并且處于 Running 狀態(tài)驳糯;
    2) docker-compose 是否已安裝。

  • 執(zhí)行install.sh腳本

[root@master harbor]# pwd
/appdata/harbor
[root@master harbor]# ls
common                    docker-compose.notary.yml  ha          harbor.v1.5.0.tar.gz  LICENSE  prepare
docker-compose.clair.yml  docker-compose.yml         harbor.cfg  install.sh            NOTICE
[root@master harbor]# ./install.sh
  • 檢查是否部署成功
[root@master harbor]# docker ps
CONTAINER ID        IMAGE                                  COMMAND                  CREATED             STATUS                 PORTS                                                                NAMES
a3e4600433f5        vmware/harbor-jobservice:v1.5.0        "/harbor/start.sh"       6 hours ago         Up 6 hours                                                                                  harbor-jobservice
fb5be3e51669        vmware/nginx-photon:v1.5.0             "nginx -g 'daemon ..."   6 hours ago         Up 6 hours (healthy)   0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:5000->80/tcp   nginx
a6f615b7fda8        vmware/harbor-ui:v1.5.0                "/harbor/start.sh"       6 hours ago         Up 6 hours (healthy)                                                                        harbor-ui
6815d3923952        vmware/registry-photon:v2.6.2-v1.5.0   "/entrypoint.sh se..."   6 hours ago         Up 6 hours (healthy)   5000/tcp                                                             registry
307a76950d0a        vmware/harbor-adminserver:v1.5.0       "/harbor/start.sh"       6 hours ago         Up 6 hours (healthy)                                                                        harbor-adminserver
77491b86a979        vmware/redis-photon:v1.5.0             "docker-entrypoint..."   6 hours ago         Up 6 hours             6379/tcp                                                             redis
6710cfb03fb6        vmware/harbor-db:v1.5.0                "/usr/local/bin/do..."   6 hours ago         Up 6 hours (healthy)   3306/tcp                                                             harbor-db
c3917ccc8bfd        vmware/harbor-log:v1.5.0               "/bin/sh -c /usr/l..."   6 hours ago         Up 6 hours (healthy)   127.0.0.1:1514->10514/tcp                                            harbor-log

4氢橙、測試

  • 服務器測試
    1) 在瀏覽器上輸入地址:http://47.99.101.222:5000(harbor 云主機外網(wǎng) IP)酝枢,能看到如下界面。一般情況下充蓝,需要在云主機上設置安全組規(guī)則隧枫,放行 5000 端口,可以先用 telnet 命令驗證 5000 端口是否開通谓苟,如果沒放行官脓,設置即可。


    harbor界面

2)輸入 admin 賬號和密碼涝焙,驗證是否登錄成功卑笨。


登錄界面

3)新建測試項目,如:hbs仑撞,驗證是否新建 project 成功赤兴。


新建測試項目
  • 客戶端測試
    1)確保客戶端節(jié)點已經(jīng)安裝好 docker隧哮。
[root@node ~]# systemctl status docker.service

2)修改 docker.service 配置文件桶良,添加 --insecure-registry 選項,值為 harbor服務器IP和端口沮翔。

[root@node ~]# vim /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd-current \
          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
          --default-runtime=docker-runc \
          --exec-opt native.cgroupdriver=systemd \
          --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
          --init-path=/usr/libexec/docker/docker-init-current \
          --seccomp-profile=/etc/docker/seccomp.json \
          --insecure-registry=47.99.101.222:5000 \

[root@node ~]# systemctl daemon-reload
[root@node ~]# systemctl restart docker.service
[root@node ~]# docker info | grep Insecure

3)鏡像推送

# 先隨機拉取一個鏡像陨帆,例如 nginx鏡像
[root@node ~]# docker pull docker.io/nginx:latest
Trying to pull repository docker.io/library/nginx ...
latest: Pulling from docker.io/library/nginx
27833a3ba0a5: Pull complete
ea005e36e544: Pull complete
d172c7f0578d: Pull complete
Digest: sha256:e71b1bf4281f25533cf15e6e5f9be4dac74d2328152edf7ecde23abc54e16c1c
Status: Downloaded newer image for docker.io/nginx:latest

# 將 nginx 鏡像打上新的 tag,格式是:${harbor 服務器 IP}:${harbor 監(jiān)聽端口}/${項目}/${鏡像名稱}:${鏡像 tag},確保項目要在 harbor 上提前建好疲牵。
[root@node ~]# docker tag docker.io/library/nginx 47.99.101.222:5000/hbs/nginx:latest

# 登錄harbor
[root@node ~]# docker login 47.99.101.222:5000
Username (admin): admin
Password:
Login Succeeded

# 推送鏡像
[root@node ~]# docker push 47.99.101.222:5000/hbs/nginx:latest
The push refers to a repository [47.99.101.222:5000/hbs/nginx]
fc4c9f8e7dac: Pushed
912ed487215b: Pushed
5dacd731af1b: Pushed
latest: digest: sha256:c10f4146f30fda9f40946bc114afeb1f4e867877c49283207a08ddbcf1778790 size: 948

5承二、更多 docker-compose 命令

docker-compose 的命令和 docker 的命令很相似,但是大部分 compose 的命令都需要到 docker-compose.yml 文件所在的目錄下才能執(zhí)行

  • 以后臺守護進程運行
[root@master harbor]# docker-compose up -d
  • 查看 compose 運行的服務/容器
[root@master harbor]# docker-compose ps
       Name                     Command                  State                               Ports
--------------------------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/start.sh                 Up (healthy)
harbor-db            /usr/local/bin/docker-entr ...   Up (healthy)   3306/tcp
harbor-jobservice    /harbor/start.sh                 Up
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up (healthy)   127.0.0.1:1514->10514/tcp
harbor-ui            /harbor/start.sh                 Up (healthy)
nginx                nginx -g daemon off;             Up (healthy)   0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp,
                                                                     0.0.0.0:5000->80/tcp
redis                docker-entrypoint.sh redis ...   Up             6379/tcp
registry             /entrypoint.sh serve /etc/ ...   Up (healthy)   5000/tcp
  • 停止 compose 服務
[root@master harbor]# docker-compose stop
  • 重啟 restart 服務
[root@master harbor]# docker-compose restart

更多關于 docker-compose 的命令可以看看幫助文檔即可纲爸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亥鸠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子识啦,更是在濱河造成了極大的恐慌负蚊,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颓哮,死亡現(xiàn)場離奇詭異盖桥,居然都是意外死亡,警方通過查閱死者的電腦和手機题翻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腰鬼,“玉大人嵌赠,你說我怎么就攤上這事∠ㄉ模” “怎么了姜挺?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長彼硫。 經(jīng)常有香客問我炊豪,道長,這世上最難降的妖魔是什么拧篮? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任词渤,我火速辦了婚禮,結(jié)果婚禮上串绩,老公的妹妹穿的比我還像新娘缺虐。我一直安慰自己,他們只是感情好礁凡,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布高氮。 她就那樣靜靜地躺著,像睡著了一般顷牌。 火紅的嫁衣襯著肌膚如雪剪芍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天窟蓝,我揣著相機與錄音罪裹,去河邊找鬼。 笑死,一個胖子當著我的面吹牛坊谁,可吹牛的內(nèi)容都是我干的费彼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼口芍,長吁一口氣:“原來是場噩夢啊……” “哼箍铲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鬓椭,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤颠猴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后小染,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翘瓮,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年裤翩,在試婚紗的時候發(fā)現(xiàn)自己被綠了资盅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡踊赠,死狀恐怖呵扛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情筐带,我是刑警寧澤今穿,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站伦籍,受9級特大地震影響蓝晒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帖鸦,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一芝薇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧富蓄,春花似錦剩燥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至口注,卻和暖如春变擒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寝志。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工娇斑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留策添,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓毫缆,卻偏偏與公主長得像唯竹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子苦丁,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容