银河麒麟v10离线安装harbor |
您所在的位置:网站首页 › 离线安装libaio1 › 银河麒麟v10离线安装harbor |
文章目录
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-composeyum install docker-compose -y 以上文件可以到此处下载:‘docker-compose.zip’ 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.targetsystemctl enable harbor #设置harbor开机自启 systemctl start harbor #启动harbor 测试:docker ps命令查看:有几个容器没起来,如图一直Restarting 用docker-compose ps命令再次查看,如上图:所有容器都成功了! docker ps查看到端口为80: 为了兼容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.key2.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.key2.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.ext2.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.提供证书给harborcd /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 |