本文主要闡述如何在離線環(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 端口是否開通谓苟,如果沒放行官脓,設置即可。
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 的命令可以看看幫助文檔即可纲爸。