目录
2.配置阿里云docker Yum源(在server与client主机上执行)
前言
harbor简介
Harbor是VMware公司提供的一款镜像仓库,提供了权限控制、分布式发布、强大的安全扫描与审查机制等功能,Harbor 私有仓库,它以 Registry 为基础,提供了对用户友好的管理界面,可以帮助我们快速搭建一个企业级的 Docker Registry 服务。Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 Docker Compose 进行部署。
docker-compose简介
Docker Compose 是一款针对于单台虚拟机容器编排工具,遵循 YAML 文件形式创建或启动所有的容器
前置准备
本次测试使用了两台虚拟机,分别为Client和Server,Server端负责提供harbor仓库访问
server的IP为:172.25.0.11
client的IP为: 172.25.0.12
流程
1.设置主机名
hostnamectl set-hostname server
bash
hostnamectl set-hostname client
bash
2.配置阿里云docker Yum源(在server与client主机上执行)
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache
3.安装docker-ce
yum install -y docker-ce-18.06.3.ce-3.el7.x86_64
systemctl start docker
4.安装docker-compose(server端)
#下载docker-compose二进制文件
curl -SL https://github.com/docker/compose/releases/download/v2.33.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
#添加执行权限
chmod +x /usr/local/bin/docker-compose
#查看docker-compose版本
docker-compose --version
5.安装harbor
wget https://github.com/goharbor/harbor/releases/download/v2.5.1/harbor-offline-installer-v2.5.1.tgz
tar -zvxf harbor-offline-installer-v2.5.1.tgz
cd harbor && mv harbor.yml.tmpl harbor.yml
vim harbor.yml
#修改主机名与harbor密码,并注释掉443端口默认使用http进行访问
使用http://172.25.0.11访问web界面
6.下载nginx容器镜像上传到harbor仓库测试
#配置镜像代理并指定私有仓库的地址
cat >> /etc/docker/daemon.json <<EOF
{
"registry-mirrors":["https://3146a7e5d01e422da13bb564af9f150f.mirror.swr.myhuaweicloud.com"],
"insecure-registries": ["172.25.0.11"]
}
EOF
systemctl restart docker
docker-compose down
docker-compose up -d
#拉去nginx镜像并登录harbor私有仓库上传
docker pull nginx
docker login 172.25.0.11 -u admin -p Huawei@123
docker tag nginx:latest 172.25.0.11/library/nginx:latest
docker push 172.25.0.11/library/nginx:latest
yum install -y docker
cat >> /etc/docker/daemon.json <<EOF
{
"insecure-registries": ["172.25.0.11"]
}
EOF
systemctl start docker
docker login 172.25.0.11 -u admin -p Huawei@123
docker pull 172.25.0.11/library/nginx:latest
7.配置harbor使用https进行访问
#172.25.0.12
yum intsall openssl
cd /etc/pki/CA/
touch index.txt
echo 1000 > certs/ca.srl
openssl genrsa -out ./private/ca.key 4096 ##生成CA私钥
openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=guaudong/L=shenzhen/O=example/OU=Personal/CN=172.25.0.12" -key private/ca.key -out certs/ca.crt ##使用私有自签证书
##生成拓展文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = IP:172.25.0.11
EOF
#172.25.0.11
cd /etc/pki/CA && mkdir csr
openssl genrsa -out private/harbor.key 4096 ##生成harbor私钥
openssl req -sha512 -new -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=172.25.0.11" -key private/harbor.key -out csr/harbor.csr ##生成harbor证书签名请求文件
scp csr/harbor.csr root@172.25.0.12:/etc/pki/CA/
#172.25.0.12
openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA private/ca.crt -CAkey certs/ca.key -in harbor.csr -out harbor.crt ##使用CA证书对csr文件进行签名
scp harbor.crt root@172.25.0.11:/etc/pki/CA/certs/
vim /root/harbor/harbor.yml
sh install.sh ##重新harbor执行安装
#使用https进行访问