openEuler欧拉部署Harbor
一、系统优化
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
二、安装Harbor
wget https://github.com/goharbor/harbor/releases/download/v2.8.1/harbor-offline-installer-v2.8.1.tgz
tar xvf harbor-offline-installer-v2.8.1.tgz
df -h
mv harbor/ /home
cd /home/harbor
dnf -y install docker
dnf -y install docker-compose
三、制作SSL本地证书
mkdir cert
cd cert
生成证书颁发机构证书
生成 CA 证书私钥
openssl genrsa -out ca.key 4096
生成 CA 证书
如果您使用 FQDN 连接您的 Harbor 主机,则必须将其指定为公用名称 ( CN) 属性并在密钥和 CSR 文件名中使用它。
openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=172.62.17.113" \ -key ca.key \ -out ca.crt
生成服务器证书
生成私钥
openssl genrsa -out harbor.xxxx.com.key 4096
生成证书签名请求 (CSR)
如果您使用 FQDN 连接您的 Harbor 主机,则必须将其指定为公用名称 ( CN) 属性并在密钥和 CSR 文件名中使用它。
openssl req -sha512 -new \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=172.62.17.113" \ -key harbor.xxxx.com.key \ -out harbor.xxxx.com.csr
生成 x509 v3 扩展文件 替换DNS条目,第二个DNS写Harbor主机名
cat > v3.ext <<-EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1=172.62.10.5 DNS.2=Server-Harbor EOF
使用该v3.ext文件为您的 Harbor主机生成证书
openssl x509 -req -sha512 -days 3650 \ -extfile v3.ext \ -CA ca.crt -CAkey ca.key -CAcreateserial \ -in harbor.xxxx.com.csr \ -out harbor.xxxx.com.crt
转换harbor.xxxx.com.crt为harbor.xxxx.com.cert, 供 Docker 使用。
openssl x509 -inform PEM -in harbor.xxxx.com.crt -out harbor.xxxx.com.cert
将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中。
如果您将默认nginx端口 443 映射到不同的端口,请创建文件夹/etc/docker/certs.d/harbor.xxxx.com:8843或/etc/docker/certs.d/harbor_IP:8843.
mkdir -p /etc/docker/certs.d/172.62.17.113:8843
cp harbor.xxxx.com.cert /etc/docker/certs.d/172.62.17.113:8843
cp harbor.xxxx.com.key /etc/docker/certs.d/172.62.17.113:8843
cp ca.crt /etc/docker/certs.d/172.62.17.113:8843
systemctl restart docker
说明:
/etc/docker/certs.d/
└── harbor.xxxx.com:8843
├── harbor.xxxx.com.cert <-- Server certificate signed by CA
├── harbor.xxxx.com.key <-- Server key signed by CA
└── ca.crt <-- Certificate authority that signed the registry certificate
四、配置Harbor
cp harbor.yml.tmpl harbor.yml
mkdir data
编辑配置文件,给出几个重要的选项
vim harbor.yml
hostname: harbor.xxxx.com http: port: 8080 https: port: 8843 certificate: /home/harbor/cert/harbor.xxxx.com.crt private_key: /home/harbor/cert/harbor.xxxx.com.key harbor_admin_password: Harborxxxx
授权Harbor本地目录,这个很重要,否则docker启动后,各种不适应。
chmod -R 775 /home/harbor
./prepare
./install.sh
docker-compose up -d
五、其他
docker-compose down -v 或 docker-compose stop
区别:前者会remove掉容器、image、网络,停的更干净,后者只是停服务
docker login ip
试试
docker log 用不了,可以在 /var/log/harbor(harbor.yml有定义日志路径)下tail看问题。
【推荐】FFA 2024大会视频回放:Apache Flink 的过去、现在及未来
【推荐】中国电信天翼云云端翼购节,2核2G云服务器一口价38元/年
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [杂谈]如何选择:Session 还是 JWT?
· 硬盘空间消失之谜:Linux 服务器存储排查与优化全过程
· JavaScript是按顺序执行的吗?聊聊JavaScript中的变量提升
· [杂谈]后台日志该怎么打印
· Pascal 架构 GPU 在 vllm下的模型推理优化
· WinForm 通用权限框架,简单实用支持二次开发
· 硬盘空间消失之谜:Linux 服务器存储排查与优化全过程
· 如何为在线客服系统的 Web Api 后台主程序添加 Bootstrap 启动页面
· 面试官:DNS解析都整不明白,敢说你懂网络?我:嘤嘤嘤!
· Fleck:一个轻量级的C#开源WebSocket服务端库
2010-01-08 SDLC (System Develop Life Cycle)
2008-01-08 Session 详解