银河麒麟v10离线安装harbor

您所在的位置:网站首页 离线安装libaio1 银河麒麟v10离线安装harbor

银河麒麟v10离线安装harbor

2023-12-12 19:38| 来源: 网络整理| 查看: 265

文章目录 1.安装docker2.安装docker-compose3.安装Harbor4.附:给harbor加CA认证1. 生成证书颁发机构证书2.生成服务器证书3.提供证书给docker4.提供证书给harbor 5.问题:docker push/login报443端口错误6.附命令

1.安装docker

参考‘银河麒麟v10离线安装docker-ce’

2.安装docker-compose

yum install docker-compose -y 以上文件可以到此处下载:‘docker-compose.zip’ 在这里插入图片描述

3.安装Harbor

cd /export/servers/harborrpm

harbor包 cd /export/servers/harborrpm yum install -y harbor-1.10.2-1.p02.ky10.aarch64.rpm 以上文件可以到此处下载:harbor-1.10.2-1.p02.ky10.aarch64.rpm

配置 cd /opt/harbor vim harbor.yml

hostname: harbor01.io port: 80 harbor_admin_password: Harbor12345 data_volume: /data location: /var/log/harbor

安装harbor cd /opt/harbor ./prepare #配置Harbor ./install.sh #安装Harbor 在这里插入图片描述

修改docker配置文件,使docker支持harbor vim /etc/docker/daemon.json文件,其中环境变量harbor01.io配置:192.168.0.5 harbor01.io

{ “registry-mirrors”: [“https://oelq8zt4.mirror.aliyuncs.com”], “insecure-registries”: [ “http://harbor01.io” ]

}

systemctl restart docker

设置Harbor开机启动 vim /lib/systemd/system/harbor.service,写入如下

[Unit] Description=Harbor Requires=docker.service After=syslog.target network.target [Service] Type=oneshot ExecStartPre=/usr/bin/docker-compose -f /opt/harbor/docker-compose.yml down # #需要注意harbor的安装位置 ExecStart=/usr/bin/docker-compose -f /opt/harbor/docker-compose.yml up -d ExecStop=/usr/bin/docker-compose -f /opt/harbor/docker-compose.yml down # This service shall be considered active after start RemainAfterExit=yes [Install] # Components of this application should be started at boot time WantedBy=multi-user.target

systemctl enable harbor #设置harbor开机自启 systemctl start harbor #启动harbor

测试:docker ps命令查看:有几个容器没起来,如图一直Restarting在这里插入图片描述 分析: docker logs d1edfca48363查看restaring的容器日志‘Error response from daemon: configured logging driver does not support reading’,其余已启动的容器也报此error。 尝试解决:(成功)

cd /var/log/harbor & tail -20f registryctl.log,看到报错: Aug 12 10:17:37 172.18.0.1 registryctl[3559635]: ls: /harbor_cust_cert: No such file or directory Aug 12 10:17:37 172.18.0.1 registryctl[3559635]: 2021-08-12T02:17:37Z [FATAL] [/registryctl/main.go:82]: Failed to load configurations with error: open /etc/registryctl/config.yml: permission denied cd /var/log/harbor & tail -f proxy.log,看到报错: Aug 12 10:21:44 172.18.0.1 proxy[3559635]: 2021/08/12 02:21:44 [emerg] 1#0: open() "/etc/nginx/nginx.conf" failed (13: Permission denied) Aug 12 10:21:44 172.18.0.1 proxy[3559635]: nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (13: Permission denied) ------------------------- 1. 安装nginx : yum install -y nginx(不做这步也可以) 2. 给/common/registryctl/config.yml赋权:chmod 777 -R /opt/harbor/common/ 3. 检查端口是否被占用/检查80端口是否统一:检查的文件有 /opt/harbor/docker-compose.yml查看proxy.ports:- 80:8080 /opt/harbor/common/config/registry/config.yml查看auth.realm: http://192.168.0.15/service/token /opt/harbor/harbor.yml查看port: 80 cat /etc/docker/daemon.json 4. 重启docker:systemctl daemon-reload 及 systemctl restart docker 5. 重启harbor:docker-compose down 及 docker-compose up -d

用docker-compose ps命令再次查看,如上图:所有容器都成功了! docker ps查看到端口为80: 在这里插入图片描述 访问http://192.168.0.5,页面出现了,admin/Harbor12345(默认账号/密码)

4.附:给harbor加CA认证

为了兼容ide安装,在192.168.0.15设置hosts:192.168.0.15 harbor01.io

默认情况下,Harbor不附带CA证书认证的。也就是说,Harbor 可以在没有安全性的情况下部署,以便可以快速通过HTTP连接到访问。但是,只有在没有外部互联网连接、局域网的测试或开发环境中,才适合使用HTTP。

不过,不考虑安全性,在私人使用的话也可以直接在互联网使用。当然,如果直接在互联网使用HTTP协议,就会有可能遭受中间人攻击。

要配置HTTPS,必须创建SSL证书。您可以使用由受信任的第三方CA签名的证书,也可以使用openssl进行自签名证书。本节介绍如何使用 OpenSSL创建CA,以及如何使用CA签署服务器证书和客户端证书。您可以使用其他CA工具进行自签名,例如 Let’s Encrypt。

不加CA认证会导致docker push 时出现“Get https://harbor01.io/v2/: dial tcp 192.168.0.15:443: connect: connection refused”问题

1. 生成证书颁发机构证书

​ 1.1 生成CA证书:生成CA证书私钥 ca.key

在生产环境中,一般是应该从CA获得证书,例如:在阿里云购买域名之后就可以下载相关域名的CA证书了。但是在测试或开发环境中,对于这种自己定义的内网域名,就可以自己生成自己的CA证书。要生成CA证书,则运行以下命令。

mkdir /export/servers/ssl -p && cd /export/servers/ssl

openssl genrsa -out ca.key 4096

[root@cn01 ssl]# openssl genrsa -out ca.key 4096 Generating RSA private key, 4096 bit long modulus (2 primes) ...............................................++++ ....................................................................++++ e is 65537 (0x010001) [root@cn01 ssl]# ls ca.key

​ 1.2 根据上面生成的CA证书私钥,再来生成CA证书 ca.crt

[root@cn01 ssl]# openssl req -x509 -new -nodes -sha512 -days 3650 \ > -subj "/C=CN/ST=Beijing/L=Beijing/O=Harbor/OU=Harbor/CN=harbor01.io" \ > -key ca.key \ > -out ca.crt [root@cn01 ssl]# ls ca.crt ca.key # 参数说明: -new 指生成证书请求 -x509 表示直接输出证书 -key 指定私钥文件 -days 指定证书过期时间为3650天 -out 导出结束后证书文件 -subj 输入证书拥有者信息 CN 可以填写harbor服务器的域名 2.生成服务器证书

​ 2.1 上面生成了 ca 的证书,那么下面来继续生成服务器的证书。证书通常包含一个.crt文件和一个.key文件,例如yourdomain.com.crt和yourdomain.com.key。在这里,因为我上面设置的服务器域名为harbor01.io

openssl genrsa -out harbor01.io.key 4096

[root@cn01 ssl]# openssl genrsa -out harbor01.io.key 4096 Generating RSA private key, 4096 bit long modulus (2 primes) .............................................................................................................................................................++++ e is 65537 (0x010001) [root@cn01 ssl]# ls ca.crt ca.key harbor01.io.key

2.2 生成证书签名请求

[root@cn01 ssl]# openssl req -sha512 -new \ > -subj "/C=CN/ST=Beijing/L=Beijing/O=Harbor/OU=Harbor/CN=harbor01.io" \ > -key harbor01.io.key \ > -out harbor01.io.csr [root@cn01 ssl]# ls ca.crt ca.key harbor01.io.csr harbor01.io.key

2.3 生成一个x509 v3扩展文件

无论是使用FQDN还是IP地址连接到Harbor主机,都必须创建此文件。这样的话,Harbor主机才能够生成符合主题备用名称(SAN)和x509 v3的证书扩展要求。下面的配置中,DNS的部分需要替换为自己Harbor服务器的域名。

[root@cn01 ssl]# cat > v3.ext basicConstraints=CA:FALSE > keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment > extendedKeyUsage = serverAuth > subjectAltName = @alt_names > > [alt_names] > DNS.1=harbor01.io > DNS.2=harbor01 > EOF [root@cn01 ssl]# ls ca.crt ca.key harbor01.io.csr harbor01.io.key v3.ext

2.4 使用该v3.ext文件为您的Harbor主机生成证书 harbor01.io.crt

[root@cn01 ssl]# openssl x509 -req -sha512 -days 3650 \ > -extfile v3.ext \ > -CA ca.crt -CAkey ca.key -CAcreateserial \ > -in harbor01.io.csr \ > -out harbor01.io.crt Signature ok subject=C = CN, ST = Beijing, L = Beijing, O = Harbor, OU = Harbor, CN = harbor01.io Getting CA Private Key [root@cn01 ssl]# ls ca.crt ca.key ca.srl harbor01.io.crt harbor01.io.csr harbor01.io.key v3.ext 3.提供证书给docker ## 将服务器证书harbor01.io.crt和密钥harbor01.io.key复制到Harbor主机上的certficates文件夹中 [root@cn01 ssl]# mkdir /data/cert/ -p [root@cn01 ssl]# cp harbor01.io.crt harbor01.io.key /data/cert/ [root@cn01 ssl]# cd /data/cert/ ## 将服务器证书harbor01.io.crt的编码格式转换为harbor01.io.cert,提供Docker使用 [root@cn01 cert]# openssl x509 -inform PEM -in harbor01.io.crt -out harbor01.io.cert [root@cn01 cert]# ls harbor01.io.cert harbor01.io.crt harbor01.io.key ## 将服务器证书,密钥和CA文件复制到Harbor主机上的Docker certificate文件夹中 [root@cn01 cert]# mkdir -p /etc/docker/certs.d/harbor01.io [root@cn01 cert]# cp harbor01.io.cert harbor01.io.key /etc/docker/certs.d/harbor01.io/ [root@cn01 cert]# cp /export/servers/ssl/ca.crt . [root@cn01 cert]# cp ca.crt /etc/docker/certs.d/harbor01.io/ [root@cn01 cert]# ls /etc/docker/certs.d/harbor01.io/ ca.crt harbor01.io.cert harbor01.io.key # 重启docker systemctl restart docker [root@cn01 cert]# tree /etc/docker/certs.d/ /etc/docker/certs.d/ └── harbor01.io ├── ca.crt ├── harbor01.io.cert └── harbor01.io.key 4.提供证书给harbor

cd /opt/harbor,修改harbor.yml文件,指定证书给harbor

重启harbor:

​ docker-compose down

​ docker-compose up

测试docker login是否可以

docker login harbor01.io,结果还是不行,进行下面第8步操作

5.问题:docker push/login报443端口错误

修改daemon.json文件

[root@cn03 image]# vim /etc/docker/daemon.json { "registry-mirrors": ["https://oelq8zt4.mirror.aliyuncs.com"], "insecure-registries": [ "http://harbor01.io" ] } #重启docker systemctl daemon-reload systemctl restart docker #测试docker login [root@cn01 harbor]# docker login harbor01.io Authenticating with existing credentials... WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded

成功了!!!

6.附命令

日志查看:docker logs -f harbor-log

容器查看:docker ps -a

harbor常用指令: docker-compose start ## 启动 Harbor docker-compose stop ## 停止 Harbor docker-compose restart ## 重启 Harbor docker-compose ps ## 列出容器 docker-compose create ## 创建服务 docker-compose down ## 停止并删除容器、network、images和volumes docker-compose log ## 容器的视图输出 docker-compose up ## 创建和启动容器 ​ docker-compose up -d ## 创建和启动容器(后台运行)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3