私有镜像仓库harbor之手把手搭建步骤
原创 sky_amber DataBaseNotes 2023-07-01 18:08 发表于江苏 收录于合集 #harbor1个 #docker8个 #镜像7个 #devops8个DataBaseNotes ~好记性不如烂笔头~ DATABASES之笔记,SQL之笔记,NOSQL之笔记。。。 工作之日常!!! 40篇原创内容 公众号 概述
Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境的Registry也是非常必要的。 之前我是一直使用的是阿里云提供仓库,这个是免费的,也是挺好用的,但对仓库的数量是有限制的,无法进行企业化的管理,所以这里我们采用Harbor搭建一个属于自己的docker的镜像管理仓库。
HarborHarbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能,具有web管理功能,操作其实是非常简单易行的。Harbor是一个基于Apache协议的开源软件,主要开发语言为go,项目地址 https://github.com/goharbor/harbor
实验目标手把手构建出一个企业级的docker仓库存放自己私有的docker镜像
一、实验环境说明
主机OS:centos7.8hostname :harborip :192.168.56.110二、安装 Docker
2.1.安装docker-ce参考https://mp.weixin.qq.com/s/4rwI5RegCkhNkBZJR25kFQ2.2.docker --version
2.3.开启镜像加速vi /etc/docker/daemon.jsonsystemctl daemon-reloadsystemctl enable dockersystemctl restart docker
2.4.系统参数配置sudo tee -a /etc/sysctl.conf <<-EOFnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF#生效 sysctl -p
三、安装docker-compose
curl -L https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-linux-x86_64 -o /usr/bin/docker-composesudo chmod +x /usr/bin/docker-composesudo docker-compose --version四、下载harbor
curl -O https://github.com/goharbor/harbor/releases/download/v2.8.2/harbor-offline-installer-v2.8.2.tgztar xvf harbor-offline-installer-v2.8.2.tgz -C /opt五、配置Harbor参数
cd /opt/harbormkdir -p /opt/harbor/{data,certs}cp harbor.yml.tmpl harbor.ymlvi harbor.yml六、配置证书
6.1. 生成CA证书openssl genrsa -out ca.key 4096 openssl req -x509 -new -nodes -sha512 -days 365\0 -subj "/C=CN/ST=jiangsu/L=suzhou/O=amber/OU=Personal/CN=amber.com" -key ca.key -out ca.crt6.2. 生成服务器证书openssl genrsa -out amber.com.key 4096 openssl req -sha512 -new -subj "/C=CN/ST=jiangsu/L=suzhou/O=amber/OU=Personal/CN=amber.com" -key amber.com.key -out amber.com.csr
6.3. 生成harbor仓库主机的证书
cat > v3.ext <<-EOFauthorityKeyIdentifier=keyid,issuerbasicConstraints=CA:FALSEkeyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEnciphermentextendedKeyUsage = serverAuthsubjectAltName = @alt_names[alt_names]DNS.1=amber.comDNS.2=harborIP.1=192.168.56.110EOF
openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in amber.com.csr -out amber.com.crt
6.4. 配置和安装证书把amber.com.crt文件和amber.com.key文件拷贝到目录/opt/harbor/certs下,因为我前面一直是在这个路径操作的就省略了该步骤...
七、安装harbor服务
./install.sh……[root@harbor harbor]# vi /etc/docker/daemon.json[root@harbor harbor]#[root@harbor harbor]# more /etc/docker/daemon.json{ "insecure-registries": ["192.168.56.110"], "registry-mirrors": [ "https://049ghlkj.mirror.aliyuncs.com", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn" ], "exec-opts": ["native.cgroupdriver=systemd"], "live-restore": true, "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file":"3" }}[root@harbor harbor]#[root@harbor harbor]#
八、登录harbor
docker login x.x.x.x:80 # 请替换 x.x.x.x 为 harbor 公网 IP初始用户名:admin初始 密码:Harbor12345系统模块简单介绍:项目:新增/删除项目,查看镜像仓库,给项目添加成员、查看操作日志、复制项目等日志:仓库各个镜像create、push、pull等操作日志系统管理用户管理:新增/删除用户、设置管理员等复制管理:新增/删除从库目标、新建/删除/启停复制规则等配置管理:认证模式、复制、邮箱设置、系统设置等其他设置用户设置:修改用户名、邮箱、名称信息修改密码:修改用户密码注意:非系统管理员用户登录,只能看到有权限的项目和日志,其他模块不可见。
九、操作指南
在目录 /opt/harbor 下docker-compose ps #查看运行poddocker-compose up -d #后台启动docker-composedocker-compose down #关机备注:当有编辑/变更harbor.yml文件,请重新执行 ./prepare
十、docker login异常
10.1. login报错unknown authority解决办法[root@harbor harbor]# docker login -u admin 192.168.56.110Password:WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded[root@harbor harbor]#[root@harbor harbor]# docker login -u admin amber.comPassword:Error response from daemon: Get "https://amber.com/v2/": tls: failed to verify certificate: x509: certificate signed by unknown authority[root@harbor harbor]# mkdir -p /etc/docker/certs.d/amber.com/[root@harbor harbor]# mkdir -p /etc/docker/certs.d/192.168.56.110/[root@harbor harbor]# cp certs/ca.crt /etc/docker/certs.d/amber.com/[root@harbor harbor]# cp certs/ca.crt /etc/docker/certs.d/192.168.56.110/[root@harbor harbor]# docker login -u admin amber.comPassword:WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded[root@harbor harbor]#10.2. login报错connection refused解决办法[root@harbor harbor]#[root@harbor harbor]# docker login -u admin 192.168.56.110Password:Error response from daemon: Get "http://192.168.56.110/v2/": dial tcp 192.168.56.110:80: connect: connection refused[root@harbor harbor]#
解决方法:vi /lib/systemd/system/docker.service白色部分换成自己镜像仓库IP (重点:镜像仓库IP换成你自己的。)
保存重启:systemctl daemon-reloadsystemctl restart docker然后继续login操作即可。
10.3. login报错contain any IP SANs解决办法 这个报错是我测试中遇到的最多的错误。 x509: cannot validate certificate for 192.168.121.100 because it doesn't contain any IP SANs 这个是因为在生成证书的时候,要么是域名,要么是IP,导致login ip的时候会报此错误。(彩蛋: 本文第六章的配置证书部分),本文可以避免此错误,欢迎验证~
写在最后
道阻且长,行则将至,与君共勉!感谢您的光临和阅读,让我们一起学习&进步&成长。本文如有不足之处,欢迎私信我,谢谢~也欢迎您在文末 分享、点赞、在看,给个3连击,以资鼓励~ DataBaseNotes ~好记性不如烂笔头~ DATABASES之笔记,SQL之笔记,NOSQL之笔记。。。 工作之日常!!! 40篇原创内容 公众号 阅读 108 DataBaseNotes 40篇原创内容 标签:amber,harbor,手把手,镜像,root,docker,com,login From: https://www.cnblogs.com/cherishthepresent/p/17524928.html