云计算项目八:Harbor

部署企业私有镜像仓库Harbor

私有镜像仓库有许多优点:

  • 节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可
  • 提供镜像资源利用,针对于公司内部使用的镜像,推送到本地私有仓库中,以供公司内部人员使用
  • VMware公司开园了企业级Registry项目harbor,其目标是帮助用户迅速搭建一个企业级的Docker registry 服务
    在这里插入图片描述
    Docker Compose是用于定义和运行多容器Docker应用程序的工具。Harbor的每个组件都是以Docker容器的形式构建的,所以使用Docker Compose开对它进行部署。
[root@jumpserver ~]# scp -r /root/5/project3/harbor/ 192.168.1.100:/root/
harbor主机开启路由转发
[k8s@harbor ~]$ sudo -s 
[root@harbor k8s]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
[root@harbor k8s]# sysctl -p
harbor主机安装docker服务,并启动
[root@harbor k8s]# yum -y install docker-ce
[root@harbor k8s]# systemctl enable --now docker
部署harbor
[root@harbor k8s]# cd /root/harbor/
[root@harbor harbor]# mv docker-compose /usr/sbin/
[root@harbor harbor]# chmod +x /usr/sbin/docker-compose 
[root@harbor harbor]# tar -xf harbor-offline-installer-v2.4.2.tgz  -C /usr/local/
修改配置文件
[root@harbor harbor]# cd /usr/local/harbor
[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml		#拷贝harbor配置文件	
[root@harbor harbor]# vim harbor.yml		
5 hostname: harbor		#访问harbor管理界面地址,写成主机名,后面做主机名解析
#以下配置加上注释,否则需要证书13 #https:										#加上注释14   # https port for harbor, default is 44315   #port: 443								#加上注释16   # The path of cert and key files for nginx17   #certificate: /your/certificate/path			#加上注释18   #private_key: /your/private/key/path			#加上注释	安装harbor
[root@harbor harbor]# ./install.sh 
.......
✔ ----Harbor has been installed and started successfully.----[root@harbor harbor]# ss -antpu | grep 80
tcp    LISTEN     0 1024   [::]:80     [::]:*  users:(("docker-proxy",pid=15459,fd=4))

登录harbor

另外购买一个新的公网IP,绑定到harbor主机
访问:http://公网IP地址:80,用户名:admin 密码:Harbor12345
在这里插入图片描述

测试harbor

使用test主机测试,test主机安装docker软件
[k8s@test ~]$ sudo -s 
[root@test k8s]# yum -y install docker-ce[root@test k8s]# vim /etc/hosts	#配置主机名解析
192.168.1.100 harbor更改配置文件,指定私有仓库地址
[root@test k8s]# mkdir /etc/docker
[root@test k8s]# vim /etc/docker/daemon.json
{"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["http://harbor:80"],"insecure-registries":["harbor:80"]
}
[root@test k8s]# systemctl enable --now docker
[root@test k8s]# docker login http://harbor:80	#测试登录Harbor镜像仓库
Username: admin 			#用户名
Password: Harbor12345 		#密码
Login Succeeded#密码信息会存储在/root/.docker/config.json中

测试,在test主机导入镜像,上传至harbor主机,tomcat软件在2阶段

[root@jumpserver ~]# scp /root/5/public/myos.tar.xz  apache-tomcat-9.0.6.tar.gz 192.168.1.101:/root/
[root@test k8s]# cd /root/
[root@test ~]# docker load  -i /root/myos.tar.xz 制作tomcat镜像
[root@test ~]# mkdir tomcat
[root@test ~]# cd tomcat/
[root@test tomcat]# mv /root/apache-tomcat-9.0.6.tar.gz ./
[root@test tomcat]# vim Dockerfile 
FROM myos:v2009
RUN  yum install -y java-1.8.0-openjdk && yum clean all
ADD  apache-tomcat-9.0.6.tar.gz /usr/local/
WORKDIR /usr/local/apache-tomcat-9.0.6/webapps
EXPOSE 8080
CMD ["/usr/local/apache-tomcat-9.0.6/bin/catalina.sh", "run"]
[root@test tomcat]# docker build -t myos:tomcat .测试镜像是否有问题
[root@test tomcat]# docker run -itd myos:tomcat 
[root@test tomcat]# curl 172.17.0.2:8080		#可以正常访问制作filebeat镜像并上传
[root@test tomcat]# mkdir /root/filebeat
[root@test tomcat]# cd /root/filebeat
[root@test filebeat]# scp 192.168.1.252:/root/5/elk/filebeat-6.8.8-x86_64.rpm ./
[root@test filebeat]# vim Dockerfile 
FROM myos:v2009
ADD  filebeat-6.8.8-x86_64.rpm  ./
RUN  yum -y install ./filebeat-6.8.8-x86_64.rpm
CMD  ["/usr/share/filebeat/bin/filebeat", "-c", "/etc/filebeat/filebeat.yml", "-path.home", "/usr/share/filebeat", "-path.config", "/etc/filebeat", "-path.data", "/var/lib/filebeat", "-path.logs", "/var/log/filebeat"]制作镜像
[root@test filebeat]# docker build -t myos:filebeat .
[root@test filebeat]# docker run -itd myos:filebeat 	
[root@test filebeat]# docker ps  | grep filebeat   #查看是否启动
打标签上传镜像
[root@test filebeat]# docker tag myos:filebeat harbor:80/library/myos:filebeat
[root@test filebeat]# docker tag myos:tomcat harbor:80/library/myos:tomcat
[root@test filebeat]# docker tag myos:nginx harbor:80/library/myos:nginx
[root@test filebeat]# docker tag myos:phpfpm harbor:80/library/myos:phpfpm
[root@test filebeat]# docker push harbor:80/library/myos:filebeat
[root@test filebeat]# docker push harbor:80/library/myos:tomcat
[root@test filebeat]# docker push harbor:80/library/myos:nginx
[root@test filebeat]# docker push harbor:80/library/myos:phpfpm 登录harbor查看,可以看到上传的镜像

测试下载镜像

将系统中目前有的镜像文件删除, 从私有镜像仓库中下载镜像
[root@test filebeat]# docker rmi harbor:80/library/myos:nginx
[root@test filebeat]# docker pull harbor:80/library/myos:nginx 
[root@test filebeat]# docker images

在这里插入图片描述

# 如果harbor停止了 可以使用如下命令启动
[root@harbor ~]# cd /usr/local/harbor/
[root@harbor harbor]# docker-compose up -d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/520423.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 11 新特性 override和final

一.override和final介绍 在C11中,override和final是两个用于支持继承和多态的重要关键字。它们的具体作用如下: override:这个关键字用于派生类中,以确保虚函数的正确重写。当一个派生类的函数被声明为override时,编译…

物联网智慧大屏

随着物联网技术的飞速发展,物联网智慧大屏已经成为企业数字化转型的关键组件。那么,什么是物联网智慧大屏?它为企业带来了哪些价值?让我们一起来探索。 一、什么是物联网智慧大屏? 物联网智慧大屏,作为物联…

【Linux C | 网络编程】多播的概念、多播地址、UDP实现多播的C语言例子

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

python界面开发 - Menu (popupmenu) 右键菜单

文章目录 1. python图形界面开发1.1. Python图形界面开发——Tkinter1.2. Python图形界面开发——PyQt1.3. Python图形界面开发——wxPython1.4. Python图形界面开发—— PyGTK:基于GTK1.5. Python图形界面开发—— Kivy1.6. Python图形界面开发——可视化工具1.7. …

『 Linux 』Process Control进程控制(万字)

文章目录 🦖 前言🦖 fork()函数调用失败原因🦖 进程终止💥 进程退出码💥 进程正常退出 🦖 进程等待💥 僵尸进程💥 如何解决僵尸进程的内存泄漏问题💥 wait( )/waitpid( )…

小火星露谷管理器建议的模组安装文件结构

建议的模组安装文件结构 小火星露谷管理器希望用户将所有模组直接解压到Mods这一层目录,而不是嵌套存放。 比如你安装了两个模组,Content Patcher和Custom Companions,你应该直接解压到Mods文件夹中,并保证解压的内容全部在一个…

【动态规划】完全背包

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:题目解析 🌎推荐文章:【LeetCode】winter vacation training 目录 👉🏻完全背包 👉🏻…

素数求解的N种境界

本期介绍🍖 主要介绍:如何快速筛查出素数的各种方法👀。 文章目录 1. 前言2. 试除法2.1 试除2~(n-1)2.2 排除2倍数的合数2.3 试除2~sprt(n) 3. 筛选法3.1 如何实现筛除法求素数3.2 优化代码 4. 总结 1. 前言 素数又称质数(prime number)&…

opencv解析系列 - 基于DOM提取大面积植被(如森林)

Note&#xff1a;简单提取&#xff0c;不考虑后处理&#xff08;填充空洞、平滑边界等&#xff09; #include <iostream> #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" #include <opencv2/opencv.hpp> using namespace cv…

企业微信HOOK协议,新设备二次验证处理

提示设备强制二次验证问题已处理 HOOK&#xff1a;https://www.showdoc.com.cn/1663062930779972/7859611259700402密码&#xff1a;999999999

maven项目结构管理统一项目配置操作

一、maven分模块开发 Maven 分模块开发 1.先创建父工程&#xff0c;pom.xml文件中&#xff0c;打包方式为pom 2.然后里面有许多子工程 3.我要对父工程的maven对所有子工程进行操作 二、解读maven的结构 1.模块1 <groupId>org.TS</groupId><artifactId>TruthS…

管理 PostgreSQL 中配置参数的各种方法

管理 PostgreSQL 中配置参数的各种方法 1. 概述 PostgreSQL提供了一个配置文件 postgresql.conf 让用户自定义参数。您可能需要更改一些参数来调整性能或在工作环境中部署 PostgreSQL 服务器。在这篇博文中&#xff0c;我们将探索管理这些参数的不同方法。 2. 以不同方式管理…