4月 062021
Harbor 版本
v2.2.1-b0d63082
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。
#!/bin/bash # # https://goharbor.io/docs/2.0.0 # Disable SELinux & firewalld sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config; setenforce 0; systemctl disable firewalld; systemctl stop firewalld; # Install Docker CE # https://docs.docker.com/engine/install/centos/ # dnf list docker-ce --showduplicates | sort -r dnf makecache; yum install -y yum-utils device-mapper-persistent-data lvm2 iptables; yum-config-manager \ --add-repo https://download.docker.com/linux/centos/docker-ce.repo; dnf makecache; yum -y install docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io; systemctl enable docker; systemctl start docker; # Install Compose on Linux systems # https://docs.docker.com/compose/install/ curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" \ -o /usr/local/bin/docker-compose; chmod +x /usr/local/bin/docker-compose; # Configure HTTPS Access to Harbor # https://goharbor.io/docs/2.0.0/install-config/configure-https/ openssl genrsa -out ca.key 4096; openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.3.206" \ -key ca.key \ -out ca.crt; openssl genrsa -out 192.168.3.206.key 4096; openssl req -sha512 -new \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.3.206" \ -key 192.168.3.206.key \ -out 192.168.3.206.csr; cat > v3.ext <<-EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1=192.168.3.206 DNS.2=yourdomain DNS.3=hostname EOF openssl x509 -req -sha512 -days 3650 \ -extfile v3.ext \ -CA ca.crt -CAkey ca.key -CAcreateserial \ -in 192.168.3.206.csr \ -out 192.168.3.206.crt; openssl x509 -inform PEM -in 192.168.3.206.crt -out 192.168.3.206.cert; mkdir -p /data/cert/; cp 192.168.3.206.crt /data/cert/; cp 192.168.3.206.key /data/cert/; mkdir -p /etc/docker/certs.d/192.168.3.206/; cp 192.168.3.206.cert /etc/docker/certs.d/192.168.3.206/; cp 192.168.3.206.key /etc/docker/certs.d/192.168.3.206/; cp ca.crt /etc/docker/certs.d/192.168.3.206/; systemctl restart docker; # Download and Unpack the Installer # https://github.com/goharbor/harbor/releases dnf makecache; dnf -y install wget; wget https://github.com/goharbor/harbor/releases/download/v2.2.1/harbor-offline-installer-v2.2.1.tgz; tar xzf harbor-offline-installer-v2.2.1.tgz; cd harbor; cp harbor.yml.tmpl harbor.yml; sed -i 's/^\hostname: reg.mydomain.com/hostname: 192.168.3.206/' harbor.yml; sed -i 's/^\ certificate: \/your\/certificate\/path/ certificate: \/data\/cert\/192.168.3.206.crt/' harbor.yml; sed -i 's/^\ private_key: \/your\/private\/key\/path/ private_key: \/data\/cert\/192.168.3.206.key/' harbor.yml; sed -i 's/^\harbor_admin_password: Harbor12345/harbor_admin_password: Harbor12365/' harbor.yml; # Run the prepare script to enable HTTPS ./prepare; # Run the Installer Script ./install.sh;