Harbor小白入门

极客

本文目录导读:

Harbor小白入门

  1. 初见Harbor:这到底是啥玩意??
  2. 安装Harbor:配置好Docker以后怎么办?在线答疑就服它!
  3. 第一次登入:哇!界面这么好看?
  4. 推拉镜像实战:从一脸懵到熟练工
  5. 进阶玩法:权限管理是个宝,学会了他不乱跑
  6. 常见小毛病自查:别慌,稳住,能赢!
  7. 小结:回头看看,你已经是半个港湾主人啦!

Harbor小白入门全攻略!手把手带你避开那些坑,看完这篇咱就是老司机啦!

嘿,亲爱的读者朋友们,今天咱们来聊一个让我又爱又恨的家伙——Harbor!爱它是因为它真的解决了容器镜像管理的超级大痛点,恨它嘛……唉,想起当年我作为小白被它折腾的那些夜晚,眼泪都快掉下来了(捂脸),不过别怕,今天我就用最人话的方式,把Harbor这个“小港湾”给你讲得明明白白,保证你读完不再是门外汉!

初见Harbor:这到底是啥玩意??

哎呀,咱们得从头说起哈,你想想看,你是不是也遇到过这种场景:Docker Hub用得好好的,突然公司说要搞私有化部署,镜像不能放公网了;或者你项目一多,镜像堆得跟小山似的,想找某个版本的镜像全靠缘分;再或者开发、测试、生产环境镜像版本对不上,出了bug互相甩锅……啧啧啧,这时候你是不是特别想要一个能统一管理镜像的地方?

没错!Harbor(中文就是“港口”)就是干这个的!它就是一个企业级的Docker镜像仓库,让你能像管理码头上的集装箱一样管理你的镜像,而且它可不是普通的仓库哦,它自带权限管理、审计、复制、漏洞扫描等功能,简直就是一个全能管家!

我当初第一次看到Harbor的官方文档时,说实话吓到了——全是英文就算了,还那么多组件,什么Proxy、Core、Jobservice、Registry、Chartmuseum……差点就直接劝退了,但是!我咬牙坚持下来后发现,其实小白入门根本不需要搞懂所有组件,就像你会开车不需要清楚发动机每个零件的工作原理一样(嘿嘿,这个比喻应该能让UI小姐姐满意吧?)。

安装Harbor:配置好Docker以后怎么办?在线答疑就服它!

好嘞,咱们直接上手实操!说到安装,我强烈建议新手直接用在线安装方式,千万别一上来就挑战离线安装包,别问我怎么知道的(泪流满面……)。

装之前得先备好家伙什儿:

  • 一个装着Docker和Docker Compose的Linux系统(别问Windows,问就是兼容性问题太难了)
  • 干净的IP或者域名
  • 还有……准备好你的耐心,因为坑真的不少!

第一步,去GitHub下载Harbor的安装包,记住下载那个.tgz结尾的文件,版本选择稳定版就行,下载后用tar -xzf解压,然后你会看到一个harbor.yml文件。

这个配置文件的坑可就多了!最开始我照着网上教程随便改了个hostname,直接导致后面推拉镜像各种报错,这里敲黑板!hostname一定要填你真实的IP或域名,别用localhost,不然你会疯掉的!还有harbor_admin_password要设置强密码,别像我一样用什么123456,被安全审计的同事追着吐槽(羞愧……)。

整完配置文件,执行sudo ./install.sh,然后就是等待时间,运气好的话,几分钟后看到绿色的"Success"字样就可以庆祝啦!不过要是看到红色报错也别慌,八成是80和443端口被占用,或者磁盘空间不够,检查一下就行。

第一次登入:哇!界面这么好看?

打开浏览器输入https://你的IP,看到登录界面那一刻我还是有点小激动的!虽然会提示证书不安全,但咱们是小白嘛,先点高级-继续访问就行(别学我用测试环境,生产环境一定要配证书哦,血泪教训……),默认用户名是admin,密码就是你刚才设置的,登录进去的那瞬间,感觉整个世界都明亮了!

你看这个界面,左边有“项目”、“镜像仓库”、“复制”、“用户管理”等功能,咱们小白先把项目整明白就好,点“新建项目”,项目名称随便起个容易记住的(比如我是用harbor-test),访问级别先设为“私有”,咱自己的镜像当然不能给别人白嫖啦!建好项目后,点进去你就能看到这个项目里面所有的镜像了。

对了,别忘了设置一下Docker客户端信任Harbor证书,不然的话,每次执行docker login都会一个头两个大,我这里强烈建议啊,新手就在/etc/docker/daemon.json里加上"insecure-registries": ["你的Harbor地址"],一劳永逸(然后就可以愉快地跳过证书问题了)!

推拉镜像实战:从一脸懵到熟练工

接下来就是最激动人心的环节啦!咱们来实践一把!先在本地打个简单的镜像练练手,比如用docker tag nginx:latest 你的IP/harbor-test/nginx:v1打标签,然后docker push 你的IP/harbor-test/nginx:v1推上去。

诶?等等!如果这时候报错说no basic auth credentials,那肯定是你忘了先docker login,注意哦,登录时虽然不像某软件那样必须输入用户名,但密码填错可是会报错的(别问我是怎么知道的……)。

推上去之后,回到Harbor网页刷新一下,看到镜像安安静静躺在项目里,是不是特别有成就感?反正我是的,恨不得截图发朋友圈炫耀一番!然后拉取的话就简单了,docker pull 你的IP/harbor-test/nginx:v1,就是这么简单直接。

进阶玩法:权限管理是个宝,学会了他不乱跑

等你好不容易把镜像推上去了,肯定会想着让同事一起用对吧?这时候你复制一下“推送命令”给同事,同事一跑还报错了?嗯,八成是访问权限没给到,Harbor的用户管理非常简单,在“用户管理”里新建个用户,然后在项目里把这个用户加进来,赋值“开发”或“维护者”权限就可以啦!是不是so easy?

什么?你说你有多套环境要同步镜像?那就试试“复制”功能吧!在创建复制规则时,选源项目,填目标Registry(包括外部的Harbor),运行模式选推模式(push-based),保存后点执行,它就像个勤劳的小蜜蜂一样把镜像打包寄到另一个“港口”去啦!这个功能我真的是爱爆了,尤其适合生产环境与测试环境隔离但又要偶尔同步的场景。

常见小毛病自查:别慌,稳住,能赢!

  1. 推镜像老是503 Service Unavailable? 八成是harbor的job服务崩了,用docker ps看看哪些容器停掉了,然后docker-compose restart重启一下就行,别害怕,它不会爆炸的(笑)。

  2. 磁盘空间爆了咋办? Harbor的存储默认在/data目录,用久了肯定越来越胖,定期清理没用的tag版本,尤其是一大堆latest,不然仓库根本装不下,到时候哭都来不及。

  3. 忘了admin密码? 网上搜一下“harbor重置admin密码”,操作不复杂,但一定要记住安全第一,别在日志里随便记录明文密码。

小结:回头看看,你已经是半个港湾主人啦!

好啦,写到这里,我这个过来人真的觉得自己当初的“苦”没白受!从完全不懂Harbor到能独立搭建、推镜像、管权限,虽然过程确实坎坎坷坷,但回头一看,这些坑都变成了我现在的谈资(嘿嘿),Harbor作为容器化时代的“必备良药”,学会它真的能让你在团队里的地位直线上升!

真心希望这篇像唠嗑一样的教程能帮到正在读这篇的你!如果你也踩了某个神坑找不到解决办法,欢迎在评论区里吼一嗓子,咱们一起讨论——毕竟谁还不是个“小白”过来的呢?加油,你就是下一个Harbor高手!咱们下篇文章见啦!(挥手)

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]