私有镜像仓库harbor之手把手搭建步骤 --(安装成功)

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

 
harbor概述

Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境的Registry也是非常必要的。 之前我是一直使用的是阿里云提供仓库,这个是免费的,也是挺好用的,但对仓库的数量是有限制的,无法进行企业化的管理,所以这里我们采用Harbor搭建一个属于自己的docker的镜像管理仓库。


HarborHarbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能,具有web管理功能,操作其实是非常简单易行的。Harbor是一个基于Apache协议的开源软件,主要开发语言为go,项目地址 https://github.com/goharbor/harbor
实验目标手把手构建出一个企业级的docker仓库存放自己私有的docker镜像

一、实验环境说明

主机OS:centos7.8
hostname :harbor
ip :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.json
systemctl daemon-reload
systemctl enable docker
systemctl restart docker         
2.4.系统参数配置
sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#生效
sysctl -p 
       

三、安装docker-compose  

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

要安装其他版本的 Compose,请替换 1.24.1。

将可执行权限应用于二进制文件:

$ sudo chmod +x /usr/local/bin/docker-compose

创建软链:

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功:

$ docker-compose --version
cker-compose version 1.24.1, build 4667896b

四、下载harbor  

curl -O https://github.com/goharbor/harbor/releases/download/v2.8.2/harbor-offline-installer-v2.8.2.tgz
tar -xvf harbor-offline-installer-v2.8.2.tgz  -C  /opt
 

下载harbor
官方地址:

https://github.com/goharbor/harbor/releases
国内代理 地址 (速度挺快):

wget https://ghproxy.com/https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz


tar -xvf harbor-offline-installer-v2.8.2.tgz  -C  /opt

 



五、配置Harbor参数  

cd /opt/harbor
mkdir -p /opt/harbor/{data,certs}
cp harbor.yml.tmpl harbor.yml
vi 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 <<-EOF

authorityKeyIdentifier=keyid,issuer

basicConstraints=CA:FALSE

keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment

extendedKeyUsage = serverAuth

subjectAltName = @alt_names

[alt_names]

DNS.1=amber.com

DNS.2=harbor

IP.1=192.168.56.110

EOF
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……

 

 安装注意事项:产生的密钥和证书名称是cert 后缀结尾的,还是crt后缀结尾的,否则安装找不到文件

 安装成功::::

 

[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"
  }
}

 


     

八、登录harbor

docker login x.x.x.x:80 # 请替换 x.x.x.x 为 harbor 公网 IP
初始用户名:admin
初始 密码:Harbor12345
访问192.168.8.240

 

 



系统模块简单介绍:
项目:新增/删除项目,查看镜像仓库,给项目添加成员、查看操作日志、复制项目等
日志:仓库各个镜像create、push、pull等操作日志
系统管理
用户管理:新增/删除用户、设置管理员等
复制管理:新增/删除从库目标、新建/删除/启停复制规则等
配置管理:认证模式、复制、邮箱设置、系统设置等
其他设置
用户设置:修改用户名、邮箱、名称信息
修改密码:修改用户密码
注意:非系统管理员用户登录,只能看到有权限的项目和日志,其他模块不可见。

 


   界面如下:

 

   

九、操作指南  

在目录 /opt/harbor 下
docker-compose ps           #查看运行pod
docker-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的时候会报此错误。




posted @ 2023-07-04 10:03  往事已成昨天  阅读(1025)  评论(0编辑  收藏  举报