项目背景
实验公司最近引入docker容器技术,为了避免因上传docker镜像到公共仓库,导致公司重要文件泄露。现在急需一个私有仓库,小明挺身而出,对领导说放心我会搭建harbor私有仓库。
项目需求
1.Harbor 开启 HTTPS,用于防止密码泄露 + 防止镜像被篡改 + 符合企业安全规范
2.仓库必须要账号密码登录
3.不同人员对仓库或项目有不同权限
4.任何对仓库的操作必须审计
环境准备
硬件与系统要求
最低:2 核 CPU、4GB 内存、40GB SSD
生产推荐:4 核 +、8GB+、独立存储200GB+
系统:CentOS 7.6+/Rocky 9+/Ubuntu 20.04+
需要能连接海外镜像仓库
操作步骤
我使用的是系统是CentOS 7.6
安装安装Docker
安装Docker依赖环境
yum install -y -q yum-utils device-mapper-persistent-data lvm2 wget
添加docker官方YUM
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装Docker
yum install -y -q docker-ce docker-ce-cli containerd.io
启动Docker并设置开机自启
systemctl start docker && systemctl enable docker
验证Docker版本(出现版本表示docker安装成功)
docker version
安装Docker Compose
下载Docker Compose二进制文件(会自动匹配处理器架构)
curl -L --connect-timeout 30 --retry 3 https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
为Docker Compose二进制文件添加执行权限
chmod +x /usr/local/bin/docker-compose
验证Docker Compose安装(出现版本号即安装成功)
docker-compose -v
安装Harbor
载Harbor的tar包
wget --timeout=30 --tries=3 https://github.com/goharbor/harbor/releases/download/v2.14.2/harbor-offline-installer-v2.14.2.tgz
解压Harbor的tar包
tar xvf harbor-offline-installer-v2.14.2.tgz -C /usr/local/
创建证书目录
mkdir -p /usr/local/harbor/cert
创建证书配置文件(O/OU/CN/IP/DNS要根据实际情况修改)
cat > /usr/local/harbor/cert/openssl.cnf << EOF
[req]
default_bits = 4096
prompt = no
default_md = sha256
distinguished_name = dn
x509_extensions = ext
[dn]
C = CN
ST = Beijing
L = Beijing
O = Harbor
OU = IT
CN = chenfa.com
[ext]
basicConstraints = CA:TRUE,pathlen:1
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
subjectAltName = IP:192.168.171.220,DNS:chenfa.com
EOF
生成Harbor SSL证书
openssl req -new -x509 -nodes -days 3650 -keyout /usr/local/harbor/cert/harbor.key -out /usr/local/harbor/cert/harbor.crt -config /usr/local/harbor/cert/openssl.cnf
修改harbor配置文件harbor.yml中hostname为内网ip
sed -i "s/hostname: reg.mydomain.com/hostname: 192.168.171.220/g" /usr/local/harbor/harbor.yml
替换harbor配置文件harbor.yml中证书路径
sed -i "s|certificate: /your/certificate/path|certificate: /usr/local/harbor/cert/harbor.crt|g" /usr/local/harbor/harbor.yml
替换harbor配置文件harbor.yml中私钥路径
sed -i "s|private_key: /your/private/key/path|private_key: /usr/local/harbor/cert/harbor.key|g" /usr/local/harbor/harbor.yml
安装Harbor
sh /usr/local/harbor/install.sh
安装完成浏览器访问https:(hostname指定的ip)
默认账号:admin 密码:Harbor12345
docker登入仓库
docker配置证书(要创建和仓库ip或域名同名目录)
mkdir -p /etc/docker/certs.d/192.168.171.220
将仓库创建的证书传输到上面创建的目录中(要做到域名登入要配置/etc/hosts)
scp root@192.168.171.220:/usr/local/harbor/cert/harbor.crt /etc/docker/certs.d/192.168.171.220/ca.crt
重启docker
systemctl restart docker
登入docker(要输入用户和密码)
docker login 192.168.171.220


370

被折叠的 条评论
为什么被折叠?



