相關文章:
以下文章包含了Harbor鏡像倉庫搭建所需環境以及部署使用、報錯解決。
Docker與Docker Engine部署:https://blog.csdn.net/qq_44895681/article/details/105540702
Docker-Compose部署:https://blog.csdn.net/qq_44895681/article/details/105540333
Harbor鏡像倉庫部署使用:https://blog.csdn.net/qq_44895681/article/details/105558611
命令行登錄Harbor倉庫報錯解決:https://blog.csdn.net/qq_44895681/article/details/105573702
Harbor安裝後的默認存儲路徑是/data/。在一般的實際部署中大概率有修改的需求。
如下圖所示,根據宿主機根目錄磁盤不同,默認的容量可能不滿足需求:
環境介紹:
CentOS 7.5
Docker 19.03.8
Docker Engine 19.03.8
Docker-compose 1.25.4
Harbor 1.5.0
修改Harbor存儲路徑:
1.創建harbor存儲目錄:
[root@harbor ~]# cd /mnt/
[root@harbor mnt]# mkdir harbordata
[root@harbor ~]# cd /mnt/harbor
[root@harbor harbor]# docker-compose down -v //停止並移除整個project的所有services
Stopping harbor-jobservice ... done
Stopping nginx ... done
Stopping harbor-ui ... done
Stopping redis ... done
2.修改harbor.cfg文件
[root@harbor harbor]# vim harbor.cfg //修改harbor目錄下harbor.cfg配置文件
secretkey_path = /mnt/harbordata //更改harbor存儲目錄
3.修改docker-compose.yml文件
[root@harbor harbor]# vim docker-compose.yml //修改harbor目錄下docker-compose.yml
version: '2'
services:
log:
image: vmware/harbor-log:v1.5.0
container_name: harbor-log
restart: always
volumes:
- /var/log/harbor/:/var/log/docker/:z
- ./common/config/log/:/etc/logrotate.d/:z
ports:
- 127.0.0.1:1514:10514
networks:
- harbor
registry:
image: vmware/registry-photon:v2.6.2-v1.5.0
container_name: registry
restart: always
volumes:
- /mnt/harbordata/registry:/storage:z //更改harbor存儲目錄
- ./common/config/registry/:/etc/registry/:z
networks:
- harbor
environment:
- GODEBUG=netdns=cgo
command:
["serve", "/etc/registry/config.yml"]
depends_on:
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "registry"
mysql:
image: vmware/harbor-db:v1.5.0
container_name: harbor-db
restart: always
volumes:
- /mnt/harbordata/database:/var/lib/mysql:z //更改harbor存儲目錄
networks:
- harbor
env_file:
- ./common/config/db/env
depends_on:
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "mysql"
adminserver:
image: vmware/harbor-adminserver:v1.5.0
container_name: harbor-adminserver
env_file:
- ./common/config/adminserver/env
restart: always
volumes:
- /mnt/harbordata/config/:/etc/adminserver/config/:z //更改harbor存儲目錄
- /mnt/harbordata/secretkey:/etc/adminserver/key:z //更改harbor存儲目錄
- /mnt/harbordata/:/data/:z //更改harbor存儲目錄
networks:
- harbor
depends_on:
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "adminserver"
ui:
image: vmware/harbor-ui:v1.5.0
container_name: harbor-ui
env_file:
- ./common/config/ui/env
restart: always
volumes:
- ./common/config/ui/app.conf:/etc/ui/app.conf:z
- ./common/config/ui/private_key.pem:/etc/ui/private_key.pem:z
- ./common/config/ui/certificates/:/etc/ui/certificates/:z
- /mnt/harbordata/secretkey:/etc/ui/key:z //更改harbor存儲目錄
- /mnt/harbordata/ca_download/:/etc/ui/ca/:z //更改harbor存儲目錄
- /mnt/harbordata/psc/:/etc/ui/token/:z //更改harbor存儲目錄
networks:
- harbor
depends_on:
- log
- adminserver
- registry
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "ui"
jobservice:
image: vmware/harbor-jobservice:v1.5.0
container_name: harbor-jobservice
env_file:
- ./common/config/jobservice/env
restart: always
volumes:
- /mnt/harbordata/job_logs:/var/log/jobs:z //更改harbor存儲目錄
- ./common/config/jobservice/config.yml:/etc/jobservice/config.yml:z
networks:
- harbor
depends_on:
- redis
- ui
- adminserver
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "jobservice"
redis:
image: vmware/redis-photon:v1.5.0
container_name: redis
restart: always
volumes:
- /mnt/harbordata/redis:/data //更改harbor存儲目錄
networks:
- harbor
depends_on:
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "redis"
proxy:
image: vmware/nginx-photon:v1.5.0
container_name: nginx
restart: always
volumes:
- ./common/config/nginx:/etc/nginx:z
networks:
- harbor
ports:
- 80:80
- 443:443
- 4443:4443
depends_on:
- mysql
- registry
- ui
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "proxy"
networks:
harbor:
external: false
[root@harbor harbor]# ./prepare
[root@localhost harbor]# docker-compose up -d //構建(容器)並啓動(容器)整個project的所有service
4.訪問Harbor查看存儲容量
訪問harbor後可以看到鏡像存儲容量已經變成98G,就是我們定義的/mnt/harbordata的容量。
[root@harbor ~]# ls /mnt/harbordata/ //可以看到新建這個目錄下已經有harbor生成的文件
ca_download config database job_logs psc redis registry secretkey
注意:
在整個部署過程中,不要手動修改上述關聯掛載路徑下的內容。若要修改相關內容,一定要保證在容器完全移除(docker-compose down)的前提下進行。