设置hostname
hostnamectl set-hostname harbor.aolingo.com
编辑 /etc/hosts
# vim /etc/hosts
127.0.0.1 harbor.aolingo.com
安装Docker
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
apt install docker docker.io
下载docker-compose
需要下载
#使用浏览器到github上()下载docker-compose-linux-x86_64
#下载地址:https://github.com/docker/compose/releases
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod 755 /usr/local/bin/docker-compose
下载harbor并安装
#到github官网下载harbor-offline-installer-v2.8.2.tgz
#下载地址:https://github.com/goharbor/harbor/releases
tar zxvf harbor-offline-installer-v2.8.2.tgz
cd harbor
cp -ar harbor.yml.tmpl harbor.yml
编辑harbor.yml
hostname: harbor.dokbok.com
http:
port: 10010
#注释掉https部分
#https:
# # https port for harbor, default is 443
# port: 443
# # The path of cert and key files for nginx
# certificate: /your/certificate/path
# private_key: /your/private/key/path
external_url: https://harbor.dokbok.com
harbor_admin_password: Cherww322233
data_volume: /data
执行安装
./prepare
./install.sh
docker-compose ps
#关闭harbor
docker-compose stop
#卸载
docker-compose rm
#卸载全部(rm命令无法删除时使用)
docker-compose down --rmi all --volumes --remove-orphans
使用nginx进行代理,由于本人使用alyun的slb完成了ssl的代理,因此nginx没有配置ssl。如果不使用slb,可以在下面的这个nginx配置中添加ssl。
nginx.conf
server{
listen 8087;
server_name harbor.dokbok.com;
client_max_body_size 0;
chunked_transfer_encoding on;
location / {
proxy_http_version 1.1;
proxy_buffering off;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_redirect http:// https://;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Proxy "";
proxy_pass http://192.168.58.8;
}
}
推送镜像
docker login harbor.aolingo.com
docker pull registry.k8s.io/kube-apiserver:v1.23.17
docker tag registry.k8s.io/kube-apiserver:v1.23.17 harbor.dokbok.com/library/kube-apiserver:v1.23.17
# harbor地址 项目名 镜像名及版本号
docker push harbor.dokbok.com/library/kube-apiserver:v1.23.17
解决重启系统后,harbor的容器无法恢复的问题
在安装好harbor后,查看docker-compose.yml文件,发现所有服务都已经配置了【restart: always】选项,但是重新启动电脑后,harbor的服务依然是启动。
我们可以通过添加systemd服务来解决上述问题,解决方案如下。
1、配置harbor的systemd服务
# vim /usr/lib/systemd/system/harbor.service
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f /opt/harbor/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
注意:其中的/opt/harbor/docker-compose.yml换面自己的harbor所在目录的绝对路径。
2、启动服务
systemctl enable harbor
systemctl start harbor
docker ps -a
一些错误解决
1、报如下错误:unknown blob
这是因为harbor使用nginx代理,需要在nginx的配置文件中添加如下配置。
proxy_redirect http:// https://;
