Docker—部署harbor

设置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://;

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注