搭建一个Harbor镜像仓库
1. 什么是Harbor
Harbor是由VMWare公司开源的容器镜像仓库
事实上,Harbor就是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用
我们都知道Docker Registry是命令行操作的,对于运维非常不友好,所以Harbor所做的扩展基本就包括了以下几个方面:
- 管理用户界面
- 基于角色的访问控制
- AD/LDAP集成以及审计日志
Harbor的相关组件如下:
组件 | 功能 |
harbor-adminserver | 配置管理中心 |
harbor-db | mysql数据库 |
harbor-jobservice | 镜像复制 |
harbor-log | 记录操作日志 |
harbor-ui | web页面和api |
nginx | 前端代理,负责前端页面和镜像上传、下载 |
redis | 会话 |
registry | 镜像存储 |
2. 搭建一个harbor仓库
在搭建一个仓库之前,首先需要docker和docker-compose环境
docker-compose就是一个单机的容器编排工具,可以快速将多个容器部署到一个网络内,并且可以确定容器创建的顺序
docker之前已经安装过了,这里只写一下安装docker-compose,docker-compose就是一个二进制文件
curl -L https://get.daocloud.io/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` | sudo tee /usr/local/bin/docker-compose > /dev/null
sudo chmod +x /usr/local/bin/docker-compose
下载harbor安装包
Releases · goharbor/harbor (github.com)
下载完成之后解压包
tar zxvf harbor-offline-installer-v2.4.2.tgz
解压之后进入到harbor目录可以看到一些文件
首先需要执行prepare脚本,会拉取一些镜像到本地
./prepare
注意prepare脚本需要harbor.yml文件,上面那个harbor.yml.tmpl需要重命名或者复制一份为.yml格式
再安装之前需要修改一下ymal文件,主要是修改hostname为自己的ip地址即可
如果不需要https,记得把https的配置注释掉
# The IP address or hostname to access admin UI and registry service. # DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients. hostname: <your ip> # http related config http: # port for http, default is 80. If https enabled, this port will redirect to https port port: 80 # https related config #https: # https port for harbor, default is 443 # port: 443 # The path of cert and key files for nginx #certificate: /your/certificate/path #private_key: /your/private/key/path # # Uncomment following will enable tls communication between all harbor components # internal_tls: # # set enabled to true means internal tls is enabled # enabled: true
修改完之后就可以安装了
./install.sh
有个地方可能会发生错误,当然提示信息也很明显,我们已经有一个名叫redis的容器了,和harbor的redis容器冲突,所以我们需要重命名一下自己的那个redis
ERROR: for redis Cannot create container for service redis: Conflict. The container name "/redis" is already in use by container "7fdfbb3450db2cf83b0290c6989fedb3f049f4deca99eb4328816fb603a4db5d". You have to remove (or rename) that container to be able to reuse that name.
安装完成之后可以查看一下各个组件的状态
docker-compose ps
最后可以访问我们设置的hostname来访问harbor
默认的用户名和密码在harbor.yml文件中可以找到
默认用户:admin,密码:Harbor12345
如果要向harbor推送镜像,而没有启用https的话,可能会报错拒绝访问,这时候我们需要添加一个可信任仓库地址
制作镜像的时候需要打标签,具体可见每个仓库的推送命令,会有提示
记得要先登录在push
参考:
ubuntu安装docker和docker-compose_五克松的博客-CSDN博客
harbor搭建及使用 - 浪淘沙& - 博客园 (cnblogs.com)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通