容器镜像仓库-Harbor的安装及踩坑
之前实验室的师兄让我帮忙给服务器上装一个Harbor,花了不少时间,遂记录之,以避坑。
在学习使用Harbor之前,需要了解Docker的使用,可以看看我之前的博客:应用容器引擎-Docker、Dockerfile详解,在此之后,你还需要知道如何部署一个前后端分离的项目:部署实战-Docker+nginx部署前后端分离项目
@Author:Akai-yuan
@更新时间:2023/2/5
1.harbor-assets下载
Harbor下载链接
红色箭头的是离线下载的压缩文件,已经将一些组件打包好了,不需要自己再去手动install或者pull images等需要连网的操作了。
蓝色箭头下是需要在线安装的压缩文件,需要保证你的虚拟机有网络,现在网上的资料大多数是该类的安装教程。

等待安装中:

2.Harbor安装细则
1.登录虚拟机
2.新建一个存放harbor文件的文件夹
mkdir /home/topview/harbor
3.检查路径
pwd

4.传输tgz压缩文件
执行远程传输文件命令:
注意:这里可以选择直接使用Xftp传输,使用rz指令可能会有乱码文件夹生成,需要手动删除,很麻烦
rz

5.传输完成后检查文件夹是否存在压缩文件

6.执行压缩命令
tar -zxvf harbor-offline-installer-v2.6.2.tgz

7.拷贝harbor的配置文件
cp harbor.yml.tmpl harbor.yml
8.查看文件夹下文件

9.编辑harbor.yml文件
vi harbor.yml
10.开始编辑
点击键盘a键开启修改模式
11.修改配置文件内容
设置端口时记得查看所有的被占用的端口,不要和正在使用的端口重复:
netstat -ntulp
配置文件修改内容:
(1)设置hostname访问地址
(2)设置port端口号,注意避免和占用端口重复
(3)将https注释掉
(4)修改harbor仓库数据目录
此处有两种选择:
(1)采用http协议通信,注释https,只不过此处后面需要给daemon.json文件修改配置
(2)采用https协议,http保留作为兜底防止https失效,不过这样做很麻烦,会需要你去申请证书,步骤非常繁琐,而且容易出错。链接:harbor配置https访问
...
hostname: 192.168.1.18 //设置访问地址,可以是ip、主机名,不可以设置为127.0.0.1或localhost
# http related config
http: //启用http
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80 //http默认端口为80
//将https注释掉,以关闭https支持
# 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 //注释
...
# Remember Change the admin password from UI after launching Harbor.
harbor_admin_password: Harbor12345 //harbor登录密码
...
# The default data volume
data_volume: /opt/harbor/data //修改harbor仓库数据目录
...
12.保存
点击左上角 **Esc键 **后,输入 **:wq **再点击 Enter键 保存成功
13.修改daemon.json配置文件
vim /etc/docker/daemon.json
补充具体内容如下:
{
"registry-mirrors": ["https://mg4q1xho.mirror.aliyuncs.com"],
"insecure-registries": ["10.21.23.91:80"]
}
注意添加"insecure-registries": ["10.21.23.91:80"],别忘了前面的逗号。
14.启动安装脚本
./install.sh
15.重新执行,安装成功

16.推送镜像到harbor
首先docker tag
docker tag adoptopenjdk/maven-openjdk8 10.21.23.91:80/library/maven-openjdk8:latest
然后docker push
docker push 10.21.23.91:80/library/maven-openjdk8:latest
此时登录harbor查看镜像是否存在:

镜像可以从DockerHub中找到:
https://hub.docker.com/r/adoptopenjdk/maven-openjdk8
https://hub.docker.com/r/adoptopenjdk/maven-openjdk11
17.制作jdk+maven docker镜像
链接如下:
https://blog.csdn.net/cloud_engineer/article/details/126690346
18.修改域名与ip映射
此处因为涉及到流水线,gitlab-ci.yml配置文件需要从harbor中拉取镜像,所以必须和gitab-ci.yml中的镜像同名。
此处image中就是从harbor中拉取镜像,newharbor.server.topviewclub.cn就是域名,需要修改宿主机中的hosts文件,ip与自定义域名映射起来。

cd /etc
vim hosts

写成ip[空格]域名形式就好
容器镜像仓库-Harbor的安装及踩坑的更多相关文章
- 私有容器镜像仓库harbor
私有镜像仓库Harbor 1.Harbor概述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用 ...
- 企业级Docker容器镜像仓库Harbor的搭建
Harbor简述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理 ...
- 离线手动部署docker镜像仓库——harbor仓库(HTTPS)
实验环境: harbor服务器系统:CentOS Linux release 7.5.1804 (Core)harbor服务器IP:10.1.12.114harbor版本:v1.5.0docker版本 ...
- docker 镜像仓库 Harbor 部署 以及 跨数据复制
docker 镜像仓库 Harbor 部署 跨数据复制 Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项目 它主要 提供 Dcoker Registry 管理 ...
- Docker: 企业级镜像仓库Harbor的使用
上一节,演示了Harbor的安装部署 这次我们来讲解 Harbor的使用. 我们需要了解到: 1. 如何推镜像到镜像仓库 2. 如何从镜像仓库拉取镜像 3. 如何运行从私有仓库拉取的镜像 # 查看 h ...
- 企业级镜像仓库Harbor
介绍: Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面, ...
- docker-企业级镜像仓库harbor
Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色 ...
- 企业级Docker镜像仓库Harbor部署与使用
yum install docker 官网地址:https://docs.docker.com/compose/install/ 运行此命令以下载Docker Compose的当前稳定版本 1 sud ...
- docker企业级镜像仓库Harbor管理
Harbor概述 Harbor是由VMWare公司开源的容器镜像仓库.事实上,Harbor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括: ...
- 私有镜像仓库Harbor基础介绍与部署
企业级私有镜像仓库Harbor 一:介绍 Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为dock ...
随机推荐
- 「浙江理工大学ACM入队200题系列」问题 E: 零基础学C/C++78——求奇数的乘积
本题是浙江理工大学ACM入队200题第八套中的E题 我们先来看一下这题的题面. 题面 输入 输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你 ...
- 【题解】CF1215C Swap Letters
题面传送门 解决思路 首先容易得知,两个字符串中 \(b\)(或 \(a\)) 的个数为偶数时,一定有解.为奇数则一定无解. 其次考虑怎么交换.对照样例三: in: 8 babbaabb ababab ...
- 关于C#Section配置未初始化的问题
转载 https://www.cnblogs.com/lxshwyan/p/10828305.html 如果使用了configSection节点,则configSection必须位于根节点的第0个.A ...
- 2022-11-08 Acwing每日一题
本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的.同时也希望 ...
- Go语言核心36讲26
你好,我是郝林.今天我分享的主题是测试的基本规则和流程的(下)篇. Go语言是一门很重视程序测试的编程语言,所以在上一篇中,我与你再三强调了程序测试的重要性,同时,也介绍了关于go test命令的基本 ...
- linux sublime-text ctrl+shift+b 快捷键失效问题解决
解决办法 由于fcitx拦截了这个ctrl+shift+b 这个快捷键,所以取消即可 点击全局配置里面高级选项,然后找到ctrl+shift+b这个快捷键,点击后,按esc就可以将快捷键设置为空,不过 ...
- 面试官:介绍一下 Redis 三种集群模式
小码今天去面试. 面试官:给我介绍一下Redis集群, 小码:啊,平时开发用的都是单机Redis,没怎么用过集群了. 面试官:好的,出门右转不谢. 小码内心困惑:在小公司业务量也不大,单机的 Redi ...
- 协程Part1-boost.Coroutine.md
首先,在计算机科学中 routine 被定义为一系列的操作,多个 routine 的执行形成一个父子关系,并且子 routine 一定会在父 routine 结束前结束,也就是一个个的函数执行和嵌套执 ...
- Python中内置数据库!SQLite使用指南! ⛵
作者:韩信子@ShowMeAI Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 本文地址:https://www.showmeai.tech ...
- Django的manytomany字段
manytomany字段 用于表示多对多的关系,最常见的就是老师和班级的例子 一个老师可以教多个班级,一个班级也可以有多个老师 add 添加关系 teachers=models.Teacher.obj ...