之前实验室的师兄让我帮忙给服务器上装一个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. Day3:学习Java的第一步:Hello World!

    HelloWorld 新建一个文件夹存放代码 新建一个JAVA文件 文件后缀名为.java Hello.java 打开文件扩展名,即可查看到文件类型 运行文件:右键Hello.java文件用notep ...

  2. 「浙江理工大学ACM入队200题系列」问题 K: 零基础学C/C++84——奇偶ASCII值判断

    本题是浙江理工大学ACM入队200题第八套中的K题 我们先来看一下这题的题面. 题面 题目描述 任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输出NO; 例如,字符A的ASCI ...

  3. Pwn学习随笔

    Pwn题做题流程 使用checksec检查ELF文件保护开启的状态 IDApro逆向分析程序漏洞(逻辑复杂的可以使用动态调试) 编写python的exp脚本进行攻击 (若攻击不成功)进行GDB动态调试 ...

  4. [CS61A] Lecture 5&6&7. Environments & Design & Functions Examples & Homework 2: Higher Order Functions

    [CS61A] Lecture 5&6&7. Environments & Design & Functions Examples & Homework 2: ...

  5. Perl语言中一些内置变量等,$x、qw、cmp、eq、ne等

    转载 Perl语言中一些内置变量等,$x.qw.cmp.eq.ne等 字母 符号 释义 eq  = = equal(等于) ne != not equal(不等于) cmp 比较 qq  " ...

  6. 实现Swaggera的在线接口调试

    1.访问Swagger的路径是:http://localhost:8080/swagger-ui.html 如果项目正常,则可看到如下界面: 2.点开下面的随意一个方法 如add添加数据的方法,展开: ...

  7. 12 张图看懂 CPU 缓存一致性与 MESI 协议,真的一致吗?

    本文已收录到  GitHub · AndroidFamily,有 Android 进阶知识体系,欢迎 Star.技术和职场问题,请关注公众号 [彭旭锐] 进 Android 面试交流群. 前言 大家好 ...

  8. 带你从入门到精通学习WireShark

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying 带你从入门到精通学习WireShark 一.什么是WireShark? 二.WireShar ...

  9. i春秋phone number

    点开题目是一个普普通通的登录注册界面,随便注册一个点进去有两个功能,一个是查看电话和你相同的用户,一个是登出. 点击查询就可以看到用户数 这里有访问数据库的操作应该,所以就应该用数据库注入来解题. 又 ...

  10. 第2-4-1章 规则引擎Drools介绍-业务规则管理系统-组件化-中台

    目录 规则引擎 Drools 1. 问题引出 2. 规则引擎概述 2.1 什么是规则引擎 2.2 使用规则引擎的优势 2.3 规则引擎应用场景 2.4 Drools介绍 规则引擎 Drools 全套代 ...