Harbor 镜像仓库的装置与配置
一、装置 Harbor
1. 环境筹备:
1. 一台 Centos7 服务器 (docker 已装置, ip : 192.168.1.105), 此服务器筹备装置镜像仓库;
2. 一台 Centos7 服务器 (docker 已装置, ip : 192.168.1.106), 此服务器测试从 Harbor 镜像仓库 push 和 pull 镜像用。
2. 下载 Harbor 装置
下载安装包:https://github.com/goharbor/h…
1. 解压压缩包
tar zxvf harbor-online-installer-v1.8.1.tgz
2. 配置 harbor.yml 文件
hostname: 192.168.1.105
http:
port will redirect to https port
port: 80
https:
port: 443
certificate: /data/cert/192.168.1.105.crt
private_key: /data/cert/192.168.1.105.key
harbor_admin_password: Harbor12345
database:
password: root123
data_volume: /data
3. 运行 prepare 文件
./prepare
4. 装置
服务器必须先装置 Docker Compose
./install.sh
装置实现, 能够在浏览器中登录; 然而应用另一台主机从镜像仓库中拉取镜像时将报错:
http: server gave HTTP response to HTTPS client
起因是 docker 作为客户端, 发送的是 https 申请, 仓库未配置 https.
二、配置 Harbor 的 HTTPS 拜访
可参考: https://goharbor.io/docs/2.0….
以下 ip 批改为 Harbor 服务器的 ip
1. 创立 CA 证书
生成 CA 证书私钥
openssl genrsa -out ca.key 4096
生成 CA 证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.1.105"\
-key ca.key \
-out ca.crt
2. 生成服务器证书
生成服务器证书私钥
openssl genrsa -out 192.168.1.105.key 4096
生成服务器证书
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.1.105" \
-key 92.168.1.105.key \
-out 92.168.1.105.csr
3. 生成 x509 v3 扩大文件
这里不能依照官网的装置, 官网应用的是域名.
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = 192.168.1.105
4. 向 Harbor 和 Docker 提供证书
1. 向 Harbor 提供证书
harbor.yml 配置文件中,certificate 和 private_key 文件门路在 /data/cert/ 下, 所以要把生成的服务器证书放在这个目录下
mkdir /data/cert/
cp 192.168.1.105.crt /data/cert/
cp 192.168.1.105.key /data/cert/
2. 向 docker 提供证书
将.crt 文件转换为.cert 文件, 供 docker 应用
openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert
mkdir -p /etc/docker/certs.d/192.168.1.105/
cp 192.168.1.105.cert /etc/docker/certs.d/192.168.1.105/
cp 192.168.1.105.key /etc/docker/certs.d/192.168.1.105/
cp ca.crt /etc/docker/certs.d/192.168.1.105/
3. 重启 docker
systemctl restart docker
三、验证, 测试
1. 浏览器应用 https 登录
将 192.168.1.105.crt 拷贝至本机装置, 浏览器就能用 https 失常拜访.
2. 测试 docker 是否失常登录
1. 应用 192.168.1.106 服务器登录 Harbor
docker login 192.168.1.105
将报错:
Error response from daemon: Get https://192.168.1.105/v2/: x509: certificate signed by unknown authority
2. 制作的 ca 证书增加到信赖(因为是自签名证书 ):
将 ca.crt 拷贝至 192.168.1.106 主机
mkdir –p /etc/docker/certs.d/192.168.1.105
cp ca.crt /etc/docker/certs.d/192.168.1.105/ca.crt
systemctl restart docker
呈现:Login Succeeded, 示意登录胜利
四、推送和拉取镜像
1. 标记镜像
docker tag SOURCE_IMAGE[:TAG] 192.168.1.105/ 我的项目名 /IMAGE[:TAG]
2. 推送镜像到 Harbor
docker push 10.82.13.105/ 我的项目名 /IMAGE[:TAG]
3. 从 Harbor 中拉取镜像
docker pull 10.82.13.105/ 我的项目名 /IMAGE[:TAG]