准备:
=>申请ssl免费域名并下载密钥
=>申请域名
=>安装nginx
=>安装docker-compose
=>安装harbor
1、配置http域名访问
1)修改nginx配置
为了保证能通过域名访问harbor,避免因域名问题而导致不能正常访问,这里我先实现了通过域名能正常访问。
vim /data/docker/nginx/conf/conf.d/default.conf
upstream harbor{
server 192.168.17.102:85;
}
server
{
listen 80;
server_name harbor.test.com;
client_max_body_size 0; # 放开上传文件大小限制
index index.php index.html index.htm default.php default.htm default.html;
location /harbor
{
proxy_pass http://harbor;
}
}
2)、修改harbor.yml配置
3)、访问: http://harbor.test.com/harbor/
出现404或者无反应,需加端口号
注意:这里需要加端口号才能正常访问
http://harbor.test.com:85/harbor/
2、修改nginx配置,实现用https访问
出现问题: http可以访问,但https不能访问
修改harbor.yml配置,打开https,并将external_url 改成https
重新启动harbor
./prepare
./install.sh
修改nginx配置
upstream harbor{
server 192.168.17.102 :887;
}
server
{
listen 80;
server_name harbor.test.pub;
client_max_body_size 0; # 放开上传文件大小限制
index index.php index.html index.htm default.php default.htm default.html;
rewrite ^(.*)$ https://$host$1;
}
server {
listen 443 ssl;
server_name harbor.test.pub;
index index.php index.html index.htm default.php default.htm default.html;
ssl_certificate /ssl/6708595_harbor.test.com.pem;
ssl_certificate_key /ssl/6708595_harbortest.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location /harbor {
proxy_pass http://harbor;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http:// $scheme://;
client_max_body_size 0;
}
访问: https://harbor.test.com:887/harbor/sign-in?redirect_url=%2Fharbor%2Fprojects
配置vim /etc/docker/daemon.json
上传镜像:
登录docker login -u test -p *** https://harbor.test.com:887/
出现
Error response from daemon: Get " http://harbor.test.com:887 /v2/": dial tcp 192.168.17.102:887: connect: connection refused错误
尝试再web页面通过用户名密码登录,发现也登录不了
查看token认证的文件
将此文件复制到/etc/docker/certs.d/ harbor.od.com/ 认证的目录下面
cp common/config/registry/root.crt /etc/docker/certs.d/ harbor.od.com/
尝试登录
问题解决
尝试服务器登录
sudo docker login -u admin -p *** https://harbor.test.com:887/
尝试本地登录
docker login https://harbor.test.com:887/ 出现以下提示
解决办法
进入harbor目录找到/common/config/registry目录,找到config.yml文件,找到auth: realm:的URL地址有没有错。错了,修改一下然后重启
auth:
token:
issuer: harbor
-token-
issuer
realm: http:
//reg.harbor.cn/service/token #注意这里
http:
//reg.harbor.cn:887/service/token 看看有没有加端口号
rootcertbundle: /etc/registry/
root.crt
service: harbor
-
registry
validation:
然后重启harbor
docker-
compose down
docker-compose up -d
登录成功