docker 私服 harbor 安装

1 安装 docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

验证:
docker-compose -version
PS:如果想要卸载docker-compose,请执行以下命令
sudo rm /usr/local/bin/docker-compose

2 安装 harbor

本文是参照官方文档进行编写的。https://goharbor.io/docs/2.0.0/install-config/

2.1 下载安装包

如果服务器可以联网直接下载在线安装包(harbor-offline-installer-v2.8.2.tgz)。

然后解压安装包:

tar xzvf harbor-online-installer-version.tgz

2.2 配置 Https Access

生成授权证书

生成 CA 证书的秘钥:

openssl genrsa -out ca.key 4096

生成 CA 证书:

-subj参数的值反映了自己的机构信息。

openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=shumei/OU=Personal/CN=ahshumei.com" \
 -key ca.key \
 -out ca.crt

生成服务端证书

  1. 生成秘钥:
openssl genrsa -out ahshumei.com.key 4096
  1. 生成 a certificate signing request (CSR)
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=shumei/OU=Personal/CN=ahshumei.com" \
    -key ahshumei.com.key \
    -out ahshumei.com.csr
  1. Generate an x509 v3 extension file
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=ahshumei.com
DNS.2=ahshumei
DNS.3=服务器外网 IP
EOF
  1. 使用 v3.ext 为 harbor 服务生成一个证书
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in ahshumei.com.csr \
    -out ahshumei.com.crt

配置证书到 Harbor 和 Docker

生成 ca.acrt、ahshumei.com.crt、和 ahshumei.com.key 文件后,我们要将他们配置到 harbor 和 docker。

  1. 复制服务端证书和 key 到harbor 服务器的证书文件夹
cp ahshumei.com.crt /home/shumei/soft/harbor/cert
cp ahshumei.com.key /home/shumei/soft/harbor/cert
  1. yourdomain.com.crt 转换为 yourdomain.com.cert, Docker 会用到。
openssl x509 -inform PEM -in ahshumei.com.crt -out ahshumei.com.cert
  1. 复制服务器证书、key、和 CA 文件到harbor 服务器的 Docker 证书目录。
cp ahshumei.com.cert /etc/docker/certs.d/ahshumei.com:11005/
cp ahshumei.com.key /etc/docker/certs.d/ahshumei.com:11005/
cp ca.crt /etc/docker/certs.d/ahshumei.com:11005/

如果将 nginx 的 443 端口映射到了其他端口,证书文件夹目录创建为:/etc/docker/certs.d/ahshumei.com:prot/或者/etc/docker/certs.d/harbor_ip:prot,否则不需要加端口。

  1. 重启 docker 引擎
systemctl restart docker
# 或
sudo service docker restart

证书目录结构如下:

/etc/docker/certs.d/
    └── ahshumei.com:11005
       ├── ahshumei.com.cert  <-- Server certificate signed by CA
       ├── ahshumei.com.key   <-- Server key signed by CA
       └── ca.crt        <-- Certificate authority that signed the registry certificate

2.3 部署 harbor

配置必须的参数

hostname:ahshuemi.com
https: 
        port: 11005
        certificate: /home/shumei/soft/harbor/cert/ahshumei.com.cert
        private_key: /home/shumei/soft/harbor/cert/ahshumei.com.key
harbor_admin_password: 修改
database: 
        password: 修改
data_volume: /home/shumei/soft/harbor/data

执行安装脚本

sudo ./install.sh

安装后默认会启动。

如果 harbor 已经安装过,修改 harbor.yml 后需要先执行 prepare 脚本:

./prepare

如果 harbor 服务启动着,需要先关闭服务并移除存在的实例(镜像数据不会丢失):

docker-compose down -v

启动 harbor

docker-compose up -d

验证是否启动成功

  1. 浏览器访问 https://ahshumei.com:11005,应该可以打开 harder 服务地址。
  2. 查看/etc/docker/daemon.json确保-insecure-registry配置项中不包含https://ahshumei.com:11005
  3. 使用 Docker client 登录 harbor。
docker login ahshumei.com:11005

相关命令

Stop Harbor

sudo docker-compose stop

Restart harbor

sudo docker-compose start

参考文档

Harbor Installation and Configuration[https://goharbor.io/docs/2.0.0/install-config/]


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 ethan89@aliyun.com

×

喜欢就点赞,疼爱就打赏