一、Harbor使用方式
Harbor 作为镜像仓库,主要的交互方式就是 将镜像上传到Harbor上,以及从Harbor上下载指定镜像
在传输镜像前,可以先使用 Harbor 提供的权限管理,将项目设置为私有项目,并对不同用户设置不同角色,从而更方便管理镜像。
1、添加用户构建项目
- 创建用户
- 构建项目(设置为私有)
- 项目名称:private,发布镜像时需要
- 访问级别:公开,表示拉取不受限制
- 存储容量:-1,表示无限制
- 给项目追加用户
- 切换测试用户
2、发布镜像到Harbor
Stage 1:修改daemon.json,支持Docker仓库,并重启Docker
- 添加 "insecure-registries": ["ip:port"]"
{
"registry-minrors":[
"https://mirror.ccs.tencentyun.com",
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"insecure-registries":[
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn",
"xxx.xxx.xxx.xxx:20100"
],
"debug" : true,
"experimental" : true
}
- 需要重启,systemctl restart docker,使配置生效
- 否则推送镜像时报如下错误,http: server gave HTTP response to HTTPS client
Stage 2:修改镜像名称
1. 查看 images
2. 名称要求:
[ harbor地址 / 项目名 / 镜像名:版本 ],其中
- harbor地址:xxx.xxx.xxx.xxx: port
- 项目名:library
- 镜像名(自定义):yolov5-pest
- 版本(自定义):v1.0.0
- Image ID:镜像id,073b46a8223b
3. 修改镜像名称
docker tag 073b46a8223b 47.104.191.212:20100/library/yolov5-pest:v1.0.0
4. 查看修改后的镜像
Stage 3:docker 登录 harbor
#方式一:密码登录
docker login -u admin -p xxxx 47.104.191.212:20100
#方式二:文件方式登录,文件存密码即可
docker login --username=admin --password-stdin < /etc/docker/password.txt 47.104.191.212:20100
Stage 4:推送镜像至harbor
docker push 47.104.191.212:20100/library/yolov5-pest:v1.0.0
3、从Harbor拉取镜像ls
方式一:docker pull 拉取镜像
1. 先配置 /etc/docker/daemon.json 文件
{
"insecure-registries":[
"xxx.xxx.xxx.xxx:20100"
]
}
2. 登录 harbor
参考:Stage 3:docker 登录 harbor
3. 拉取镜像
docker pull 47.104.191.212:20100/library/yolov5-pest:v1.0.0
方式二:docker-compose 拉取镜像
1. 先配置 /etc/docker/daemon.json 文件(同上)
2. 登录 harbor(同上)
3. 拉取镜像
- image: 47.104.191.212:20100/library/yolov5-pest:v1.0.0
version: '3.1'
services:
yolov5:
image: 47.104.191.212:20100/library/yolov5-pest:v1.0.0
container_name: yolov5
restart: always
volumes:
- .:/app/
- /mnt/docker/nginx/html/images/pest:/app/pest
command: python mqtt.py
networks:
default:
external:
name: xph-network