什么是 Harbor,为什么需要用 Harbor
Harbor 是一个镜像管理工具,可以在这里管理你所需的所有镜像。
- 例如我制作了一个镜像需要共享到中央仓库,但我又不想发布于网络之中,这时,利用 Harbor 的空间,可以将镜像保存在此仓库中,方便后续管理、拉取等操作。
- 例如我的电脑网络无法从 DockerHub 下载镜像,这时我配置了加速代理,将我想要的镜像下载下来了,为了方便后续继续使用此镜像,也防止加速代理失效,此时我将此镜像上传到 Harbor 管理,这样就不怕不怕啦~
搭建 Harbor
注: 此文搭建方法的前提是安装了Docker 和 Docker-compose
运行docker -v和docker-compose -v查看是否安装
首先从 Harbor Github 下载最新版本
上传到服务器,解压至自己想存放的目录。
进入文件夹,复制一份配置文件
cp harbor.yml.tmpl harbor.yml
编辑文件进行以下配置
# 设置为自己服务器的IP
hostname: 192.168.10.17
# 设置访问的端口号
http:
port: 10888
# 默认 admin 账户的密码
harbor_admin_password: 123456
# 配置数据挂载目录
data_volume: /usr/local/docker/harbor/data
# 配置日志挂载目录
log:
location: /usr/local/docker/harbor/log
保存后进行安装编译
# 环境预编译
./prepare
./install.sh
# 后续暂停或启动,进入解压目录
docker-compose stop
docker-compose start
docker-compose restart
运行成功并完成后即可根据刚设置的地址端口打开 harbor 主页
Harbor 的使用
按照 此处(加速源标题下) 进行对 daemon.json 的设置,主要设置 insecure-registries的值为 Harbor 的访问地址
随后进行登录即可上传镜像到harbor
# Docke 登录 Harbor(随后依次输入账户密码即可)
docker login 192.168.10.17:10888
# 推送镜像时,需要更改镜像名,例如镜像 nginx:latest 做如下修改
#[192.168.10.17:10888]: harbor地址
#[lib] 在 harbor 中创建的项目名
#[nginx:2.1.1] 镜像在 harbor 中的版本
docker tag nginx:latest 192.168.10.17:10888/lib/nginx:2.1.1
docker push 192.168.10.17:10888/lib/nginx:2.1.1
# 此时再进入 harbor 中可以查看 lib 项目中会有一个 nginx 的镜像
# 后续再拉取此镜像 只需要 将 nginx:latest 改为 192.168.10.17:10888/lib/nginx:2.1.1 即可拉取
docker pull 192.168.10.17:10888/lib/nginx:2.1.1
#或者在dockerfile中
FROM 192.168.10.17:10888/lib/nginx:2.1.1