首页 > 其他分享 >私有镜像仓库harbor之手把手搭建步骤

私有镜像仓库harbor之手把手搭建步骤

时间:2023-07-04 10:11:23浏览次数:45  
标签:amber harbor 手把手 镜像 root docker com login

私有镜像仓库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/4rwI5RegCkhNkBZJR25kFQ图片图片         
2.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.crt
6.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

相关文章

  • java8发送邮件失败, 修改jdk镜像中的java.security文件
    背景原本部署环境中的java:8镜像在检查问题删除,用dockerpullopenjdk:8重新拉取并改名java:8,在重新部署后,发送邮件报错:javax.net.ssl.SSLHandshakeException:Noappropriateprotocol(protocolisdisabledorciphersuitesareinappropriate)!!!原因根本原因是j......
  • 生产环境docker镜像无法下载如何解决
    有时候镜像在开发测试环境中是可以下载的,但在某些生产环境中是无法访问外网进行镜像的拉取。这时候就只能在测试或者开发环境先保存镜像,然后复制到生产的机器,然后加载到生产本地机器,下面就来介绍下该如何操作。1、下载镜像到本地dockerpullweijishu/nginx将镜像下到本地 2......
  • 【分布式技术专题】「分布式技术架构」实践见真知,手把手教你如何实现一个属于自己的RP
    RPC是什么RPC(RemoteProcedureCall,远程过程调用)是一种计算机通信协议,它允许一个程序调用另一个程序所在的远程计算机上的子程序(或函数)而不需要自己的代码去处理远程调用的细节。RPC的应用RPC技术应用广泛,特别是在分布式系统中。比如,在Web开发中,有时需要从后端服务器请求数据,此时......
  • Docker容器镜像加速
    环境:CentOS7设置docker环境[root@Master~]#mkdir-p/etc/docker[root@Master~]#cd/etc/docker[root@Masterdocker]#vidaemon.json{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}重启服务[root@Masterdocker]#systemctldaemon-rel......
  • 使用 Dockerfile 自定义 Nginx 镜像
    一般来说,自定义Nginx只需要把静态文件放到镜像里就可以了,不需要重写 CMD 与 ENTRYPOINT。但是,如果的确需要在Nginx启动前执行一些操作,就需要重写 CMD 了,如果写成下边就样: FROMnginx COPYsomeshell.sh/ RUNchmod+x/someshell.sh CMDsomeshell.s......
  • 手把手教你入门 Docker
    博主介绍:✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌Java知识图谱点击链接:体系化学习Java(Java面试专题)......
  • k8s使用docker无法加载镜像Error response from daem
    1、报错信息:无法使用docker下载k8s镜像的解决办法,参考https://www.jianshu.com/p/70efa1b853f5目前国内的各大云计算厂商都提供了kubernetes的镜像服务,比如阿里云,我可以通过dockerpullregistry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.2.24  修改为:[root@master~]......
  • qcow2云镜像,内置启动初始化配置文件及说明
    云镜像,内置启动初始化配置文件及说明cat/etc/cloud/cloud.cfg|egrep-v"^$|^#"users:-defaultdisable_root:truepreserve_hostname:falsecloud_init_modules:-migrator-seed_random-bootcmd-write-files-growpart-resizefs-disk_setup-mounts......
  • Dockerfile构建镜像
    https://blog.csdn.net/qq_69278945/article/details/127461465先编写镜像构建文件DockerfilevimDockerfileFROMnginx:1.20RUNecho'开心活泼的果冻'>/usr/share/nginx/html/index.html构建命令dockerbuild-tmy_nginx.build:构建命令-t:指定镜像名my_nginx:镜......
  • 手把手教你如何下载智慧职教(职教云)视频课件资料
    前言:很多同学都想知道智慧职教(职教云)中课程视频资料怎么下载,但是智慧职教中某个课程的目录中展示的视频和资料是不提供直接下载方式的,所以下面就教大家如何用学无止下载器下载目录中展示的视频资料,包括MP4,PPT和PDF。一、电脑登录智慧职教网页版网页版智智慧职教课程官网:【https......