Harbor Demo

1. 概览

使用设备:Windows11,内存32G,Demo所需存储空间约为50G。

Harbor版本:2.14.2

Docker版本:29.1.3

2. wsl中Ubuntu-22.04的安装

1
wsl --install -d Ubuntu-22.04

输入ubuntu系统用户名和密码。

查看你安装了哪些版本的linux

1
wsl -l -v

进入指定系统
1
wsl -d Ubuntu-22.04

设置默认系统:
1
wsl --set-default Ubuntu-22.04

启动docker desktop, wsl会自动连接,可直接使用docker命令。

3. 安装Harbor

  1. 下载Harbor离线安装包

    1
    2
    3
    4
    5
    mkdir demo
    cd demo
    wget https://github.com/goharbor/harbor/releases/download/v2.14.2/harbor-offline-installer-v2.14.2.tgz
    tar xzvf harbor-offline-installer-v2.14.2.tgz
    cd harbor

    只有在与外部互联网完全隔离的测试或开发环境中,使用 HTTP 才是可接受的。
    在此并不配置https。配置https官方教程
    Harbor在版本1.9.x(包含)都默认使用http进行通信

  2. 编辑Harbor YML File

1
2
cp harbor.yml.tmpl harbor.yml
vi harbor.yml

修改成

1
2
3
4
hostname: harbor.local
http:
port: 5000
harbor_admin_password: Harbor12345

注释掉https相关部分

运行./prepare

因为windows的wsl占用了1514端口,需要更改log端口:

1
2
sed -i 's/localhost:1514/localhost:1515/g' docker-compose.yml
sed -i 's/127.0.0.1:1514/127.0.0.1:1515/g' docker-compose.yml

然后:

1
sudo docker compose up -d

  1. 访问

Windows浏览器访问http://localhost:5000/即可进行登录

关于管理员可以做什么,官网文档链接

停止Harbor镜像:

1
sudo docker compose stop

启动:
1
sudo docker compose start

关于Harbor Lifecycle的官方文档链接

4. 镜像管理

首先创建一个Project,名字取为algos,设置为public,存储空间限制为30G。

5. YOLO11 镜像Demo

构建镜像:

1
2
docker build -f docker/Dockerfile.cpu -t yolov11-cpu .
docker build -f docker/Dockerfile.gpu -t yolov11-gpu .

使用镜像:

1
2
3
docker run --rm -v D:\datasets\food-101\images\baby_back_ribs:/input -v D:\output:/output yolov11-cpu python infer.py /input/54203.jpg /output/result.jpg

docker run --rm --gpus all -v D:\datasets\food-101\images\baby_back_ribs:/input -v D:\output:/output yolov11-gpu python infer.py /input/54203.jpg /output/result.jpg

查看wsl的ip,在wsl中运行:

1
ip addr show eth0

找到ip地址,
给docker desktop添加信任链接:
Docker Desktop找Settings -> Docker Engine, 添加
1
"insecure-registries": ["172.18.246.156:5000"]

完整的json应该是这样的:
1
2
3
4
5
6
7
8
9
10
11
12
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"insecure-registries": [
"172.18.246.156:5000"
]
}

命令行进行登录:

1
docker login 172.18.246.156:5000

输入账号密码

登陆成功后给镜像打标签并推送:

1
2
docker tag yolov11-cpu:latest 172.18.246.156:5000/algos/yolov11-cpu:latest
docker push 172.18.246.156:5000/algos/yolov11-cpu:latest

1
2
docker tag yolov11-gpu:latest 172.18.246.156:5000/algos/yolov11-gpu:latest
docker push 172.18.246.156:5000/algos/yolov11-gpu:latest

如何删除wsl上的系统

1
2
wsl --list --verbose
wsl --unregister Ubuntu-22.04

PS: 封面链接