之前实验室的师兄让我帮忙给服务器上装一个Harbor,花了不少时间,遂记录之,以避坑。

在学习使用Harbor之前,需要了解Docker的使用,可以看看我之前的博客:应用容器引擎-DockerDockerfile详解,在此之后,你还需要知道如何部署一个前后端分离的项目:部署实战-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的安装及踩坑的更多相关文章

  1. 私有容器镜像仓库harbor

    私有镜像仓库Harbor 1.Harbor概述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用 ...

  2. 企业级Docker容器镜像仓库Harbor的搭建

    Harbor简述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理 ...

  3. 离线手动部署docker镜像仓库——harbor仓库(HTTPS)

    实验环境: harbor服务器系统:CentOS Linux release 7.5.1804 (Core)harbor服务器IP:10.1.12.114harbor版本:v1.5.0docker版本 ...

  4. docker 镜像仓库 Harbor 部署 以及 跨数据复制

    docker 镜像仓库 Harbor 部署 跨数据复制 Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项目 它主要 提供 Dcoker Registry 管理 ...

  5. Docker: 企业级镜像仓库Harbor的使用

    上一节,演示了Harbor的安装部署 这次我们来讲解 Harbor的使用. 我们需要了解到: 1. 如何推镜像到镜像仓库 2. 如何从镜像仓库拉取镜像 3. 如何运行从私有仓库拉取的镜像 # 查看 h ...

  6. 企业级镜像仓库Harbor

    介绍: Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面, ...

  7. docker-企业级镜像仓库harbor

    Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色 ...

  8. 企业级Docker镜像仓库Harbor部署与使用

    yum install docker 官网地址:https://docs.docker.com/compose/install/ 运行此命令以下载Docker Compose的当前稳定版本 1 sud ...

  9. docker企业级镜像仓库Harbor管理

    Harbor概述 Harbor是由VMWare公司开源的容器镜像仓库.事实上,Harbor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括: ...

  10. 私有镜像仓库Harbor基础介绍与部署

    企业级私有镜像仓库Harbor 一:介绍 Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为dock ...

随机推荐

  1. Vue3组件间传值

    12种方式 1. 父组件 ./father.vue 点击查看代码 <template> <h1>father:</h1> <h3>子组件传过来的:{{ ...

  2. 嵌入式-C语言基础:字符串拼接函数strcat

    #include<stdio.h> #include <string.h> //实现字符串拼接 char * mystrcat(char * dest,char * src) ...

  3. 倍福Ads协议通信测试

    测试环境:vs2015 + TC31-Full-Setup.3.1.4022.30.exe 首先需要安装TC31-Full-Setup.3.1.4022.30.exe 本例子是用本机作测试,如果使用远 ...

  4. 【iOS逆向】某车之家sign签名分析

    阅读此文档的过程中遇到任何问题,请关注公众号[移动端Android和iOS开发技术分享]或加QQ群[309580013] 1.目标 分析某车之家sign签名算法的实现 2.操作环境 frida mac ...

  5. Bugku login1

    打开是个普普通通的登录界面,盲猜是注入题,先看看源码吧,没找到什么有用的信息,那就先注册试试 注册admin就已经存在,可能待会就爆破admin的密码也可能,因为没有验证嘛 试试注册其他的 登录发现他 ...

  6. 前端项目通过‘URL 重写’部署在 IIS 中,访问 WebAPI 接口

    〇.前言 在前端项目开发时,我们可以通过配置代理 proxy 来访问本地或者是远程接口,但是部署后代理就失效了.如果项目部署在 IIS 上,就没法去对应到指定接口,此时就需要 IIS 中的'URL重写 ...

  7. vue3.0使用tui.image-editor图片编辑组件报错TypeError: Cannot convert undefined or null to object

    在vue3.0的项目中使用tui.image-editor组件.一直都是报错.查看报错位置发现代码 addEventListener() { Object.keys(this.$listeners). ...

  8. 将现有源码添加进repo管理

    将现有源码添加进repo管理 适用于大型项内无源码管理(git/repo)的源码 前言 ​ 公司在进行一些项目的开发时,从供应商原厂给的code内没有包含任何源码管理的文件.需要多人协同开发,但由于项 ...

  9. WEB入门——信息搜集1-20

    WEB1--查看源码 查看源码即可得flag. WEB2--JS前端禁用 查看源码即可得flag. JavaScript实现禁用的方法简单来说就是当用户使用键盘执行某一命令是返回的一种状态,而这种状态 ...

  10. 【每日一题】【集合增删】2022年1月13日-NC41 最长无重复子数组-220113/220122

    描述 给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同. 子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1 ...