Harbor使用 -- 修改80端口


在公網上,一般情況下都不暴露默認端口,避免被攻擊!

以下修改harbor的默認80端口為其他端口!

我這里示例修改為1180端口!

 

注意:以下步驟都是在harbor目錄下操作!!!

1、修改docker-compose.yml文件映射為1180端口:

 1 #vim docker-compose.yml
 2 
 3 proxy:
 4     image: nginx:1.11.5
 5     container_name: nginx
 6     restart: always
 7     volumes:
 8       - ./common/config/nginx:/etc/nginx
 9     ports:
10       - 1180:80
11       - 1143:443
12     depends_on:
13       - mysql
14       - registry
15       - ui
16       - log

 

2、修改common/templates/registry/config.yml文件加入1180端口:

#vim common/templates/registry/config.yml

auth:
  token:
    issuer: registry-token-issuer
    realm: $ui_url:1180/service/token
    rootcertbundle: /etc/registry/root.crt
    service: token-service

 

3、停止harbor,重新啟動並生成配置文件:

#docker-compose stop
# ./install.sh

 

4、修改docker啟動文件,設置信任的主機與端口:

#vim /usr/lib/systemd/system/docker.service  修改如下一行
ExecStart=/usr/bin/dockerd --insecure-registry=172.16.103.99:1180

 

5、重新啟動docker:

systemctl daemon-reload
systemctl restart docker.service

 

最后,測試驗證:

# docker login 172.16.103.99:1180
Username: huangjc
Password: 
Login Succeeded

ok,完成!

記得登錄時是1180這個端口哦!!

 

常見的2個報錯信息解答:

(1)Error response from daemon: Get https://172.16.103.99/v1/users/: dial tcp 172.16.103.99:443: getsockopt: connection refused

(2)Error response from daemon: Get https://172.16.103.99:1180/v1/users/: http: server gave HTTP response to HTTPS client

報這2個錯誤的都是如下2個原因:

1、是端口錯了!

2、未在docker啟動文件中添加--insecure-registry信任關系!

大多數這個錯誤是第2個原因,因為你沒有添加信任關系的話,docker默認使用的是https協議,所以端口不對(443),會報連接拒絕這個錯誤;

或者提示你 "服務器給HTTPS端的是HTTP響應" 這個錯誤,因為你沒添加端口信任,服務器認為這是默認的https訪問,返回的卻是http數據!

 

解決方法:

正確的添加信任關系包括端口號:

--insecure-registry=172.16.103.99:1180

一定要把主機與端口同時添加進去!

 

注:

記住,這是harbor鏡像倉庫,而不是單純的registry容器倉庫!

如果你用的是默認的80端口,則不需要加,或者加上80也行,而不是5000這個端口!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM