当前位置:网站首页>Open Source Summer | [Cloud Native] DevOps (5): Integrating Harbor
Open Source Summer | [Cloud Native] DevOps (5): Integrating Harbor
2022-08-02 20:32:00 【InfoQ】

前言:一、Harbor介绍
二、 Harbor安装
- 下载Harbor安装包:https://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.3.4.tgz
- 拖拽到Linux并解压:
tar -zxvf harbor-offline-installer-v2.3.4.tgz -C /usr/local/
- 修改Harbor配置文件:
- 首先复制一份harbor.yml配置
cp harbor.yml.tmpl harbor.yml
- 编辑harbor.yml配置文件
- 启动Harbor
./install.sh
- 登录Harbor
- 首页信息
三、 Harbor使用方式
1. 添加用户构建项目
- 创建用户
- 构建项目(设置为私有)
- 给项目追加用户
- 切换测试用户
2. 发布镜像到Harbor
- 修改镜像名称
- 名称要求:harbor地址/项目名/镜像名:版本
- 修改daemon.json,支持Docker仓库,并重启Docker
- 设置登录仓库信息
docker login -u 用户名 -p 密码 Harbor地址
- 推送镜像到Harbor
- |

3. 从Harbor拉取镜像ls
{
"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.11.11:80"]
}

4. Jenkins容器使用宿主机Docker
- 设置宿主机docker.sock权限:
sudo chown root:root /var/run/docker.sock
sudo chmod o+rw /var/run/docker.sock
- 添加数据卷
version: "3.1"
services:
jenkins:
image: jenkins/jenkins
container_name: jenkins
ports:
- 8080:8080
- 50000:50000
volumes:
- ./data/:/var/jenkins_home/
- /usr/bin/docker:/usr/bin/docker
- /var/run/docker.sock:/var/run/docker.sock
- /etc/docker/daemon.json:/etc/docker/daemon.json
5. 添加构建操作
6. 编写部署脚本
- 编写脚本文件,添加到目标服务器
harbor_url=$1
harbor_project_name=$2
project_name=$3
tag=$4
port=$5
imageName=$harbor_url/$harbor_project_name/$project_name:$tag
containerId=`docker ps -a | grep ${project_name} | awk '{print $1}'`
if [ "$containerId" != "" ] ; then
docker stop $containerId
docker rm $containerId
echo "Delete Container Success"
fi
imageId=`docker images | grep ${project_name} | awk '{print $3}'`
if [ "$imageId" != "" ] ; then
docker rmi -f $imageId
echo "Delete Image Success"
fi
docker login -u DevOps -p [email protected] $harbor_url
docker pull $imageName
docker run -d -p $port:$port --name $project_name $imageName
echo "Start Container Success"
echo $project_name
chmod a+x deploy.sh
7. 配置构建后操作
边栏推荐
- ES: Promise的基本用法
- 阿波罗 planning代码-modules\planning\lattice\trajectory_generation\PiecewiseBrakingTrajectoryGenerator类详解
- golang刷leetcode动态规划(10)编辑距离
- How a "cloud" can bring about new changes in the industry
- 小程序毕设作品之微信体育馆预约小程序毕业设计成品(6)开题答辩PPT
- KunlunBase 1.0 发布了!
- golang刷leetcode 经典(1) LRU缓存机制
- 牛津硕士进碳圈,高瓴红杉经纬一起投了
- 在线文档Sheet技术解析
- 判断文件属主
猜你喜欢

开源一夏 |【云原生】DevOps(五):集成Harbor

罗敏背后是抖音

Flink学习9:配置idea开发flink-Scala程序环境

redis summary_distributed cache

危及安全的常见物联网攻击有哪些?

【案例】2D变换-旋转动画

字节面试官狂问我:你没有高并发、性能调优经验,为什么录取你?

IReport常见问题及处理方法

2022高压电工特种作业证考试题库及答案

How Tencent architects explained: The principle of Redis high-performance communication (essential version)
随机推荐
54.【system系统互动函数大总结】
每日优鲜倒了,叮咚买菜的春天在哪?
基于HDF的LED驱动程序开发(1)
详细教学——1688关键词搜索API操作流程
天翼云4.0分布式云赋能千行百业数字化转型
Smart Microelectronics Releases Low-Power MM32L0130 Series MCU Products
The days of patching are more difficult than the days of writing code
Wechat Gymnasium Appointment Mini Program Graduation Design Finished Works Mini Program Graduation Design Finished Work (6) Question Opening Reply PPT
暴跌99.7%后,谁还在买卖「二舅币」?
Go 语言快速入门指南: 介绍及安装
潮玩的“第二春”,在哪?
KunlunBase 1.0 发布了!
记一次 .NET 某工控自动化控制系统 卡死分析
Simulink脚本自动创建Autosar Parameter Port及Mapping
故障分析 | 一条 SELECT 语句跑崩了 MySQL ,怎么回事?
Mini Program Graduation Works WeChat Gymnasium Reservation Mini Program Graduation Design Finished Product (8) Graduation Design Thesis Template
字节面试官狂问我:你没有高并发、性能调优经验,为什么录取你?
golang刷leetcode滑动窗口(9) 颜色分类
MySQL命令(命令行方式,而非图形界面方式)
【21天学习挑战赛学习打卡】顺序查找