Harbor简介:
Harbor是一个用于存储和分发docker镜像的企业级注册服务器,用来构建企业内部的docker镜像仓库,达到快速,安全的效果。
1、下载harbor安装包
wget https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-online-installer-v2.5.3.tgz
harbor-online-installer-v2.5.3.tgz
tar xf harbor-online-installer-v2.5.3.tgz -C /usr/local/harbor/
2、修改项目配置
记得关闭防火墙
根目录:/usr/local/harbor/
复制根目录的配置文件harbor.yml.tmpl 为harbor.yml
修改hostname字段为你的域名或者ip地址
默认端口是80和443端口,web界面使用80端口,酌情修改
tips:如果修改,下边的操作中“全局环境变量后边要加端口号”“登录harbor的时候也要加上端口号”“镜像打标签和上传下载镜像也需要带上端口”
如果没有证书的话,注释掉配置文件里https的配置
3、安装
./prepare && ./install.sh
修改过配置文件后也需要执行./prepare
启动和停止都是用docker-compose/start/stop/restart
默认用户密码
admin Harbor12345
4、创建可登录用户
登录后,点击左侧用户管理创建用户
5、新建项目
点击左侧项目,新建公共项目(私有项目需要添加成员)
6、登录使用
登录harbor仓库,否则不能上传下载镜像
直接登录这里会报个错误:
Error response from daemon: Get "https://192.168.8.9/v2/": dial tcp 192.168.8.9:443: connect: connection refused
这是因为docker的/etc/docker/daemon.json文件没有配置白名单
如果没有这个文件或目录的话
创建目录:mkdir /etc/docker/
创建文件:touch /etc/docker/daemon.json
输入以下内容
{
"insecure-registries": ["192.168.8.9"]
}
如果有的话
在全局环境添加 "insecure-registries": ["192.168.8.9"]
需要重启docker,再重启一下harbor
如果重启docker之后报这个错误:
Error response from daemon: Get "http://192.168.8.9/v2/": dial tcp 192.168.8.9:80: connect: connection refused
1、首先查看web界面是否监听的80端口,是的话修改daemon.json文件2、进入根目录执行 docker-compose restart 重启项目
登录命令
docker login -u admin -p Harbor12345 192.168.8.9 ##改端口后,IP后边加端口ip:port
docker login -u erpao -p Aa123456 192.168.8.9 ##改端口后,IP后边加端口ip:port
点击仓库,查看上传命令
标签格式:docker tag 需要上传的镜像 192.168.8.9/仓库名/要改成啥名
标签例子:docker tag nginx 192.168.8.9/erpao/nginx:v1 ##改端口后,IP后边加端口ip:port
上传格式:docker push 标签后的镜像
上传例子:docker push 192.168.8.9/erpao/nginx:v1 ##改端口后,IP后边加端口ip:port
下载:docker pull 192.168.8.9/erpao/golang:1.18.4 ##改端口后,IP后边加端口ip:port
到现在就可以简单使用harbor了
注意啊,如果你是复制浏览器里的拉取命令,那删除镜像的时候,就需要用浏览器那条命令,例如:
docker pull 192.168.8.9/erpao/gogs@sha256:28c31286b6dcb1d89054614d925140ceec31e2735b60e09026337bc30cdd5426
docker rmi 192.168.8.9/erpao/gogs@sha256:28c31286b6dcb1d89054614d925140ceec31e2735b60e09026337bc30cdd5426
就这么些了,够用了已经,再深究就是专业使用docker的企业,我暂时还没接触