私有镜像仓库harbor
1、完整拓扑
使用 Nginx 搭建 web 集群,动态页面由 PHP 和 Tomcat 集群解析
使用 NFS 存放网页,将访问日志存放在计算节点的 /var/weblog 目录下
弹性部署 PHP、Tomcat 集群服务
二、私有镜像仓库Harbor
1、私有镜像仓库优点
1)节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;
2)提供镜像资源利用,针对于公司内部使用的镜像,推送到本地私有仓库中,以供公司内部相关人员使用。
VMware公司开源了企业级Registry项目Harbor,其的目标是帮助用户迅速搭建一个企业级的Docker registry 服务。
2、环境准备
主机名称 | IP地址 | 规格 | 角色 |
---|---|---|---|
harbor | 192.168.1.100 | 2CPU/4G内存 | Harbor私有镜像仓库 |
test | 192.168.1.101 | 2CPU/4G内存 | 测试主机 |
Docker Compose 是用于定义和运行多容器 Docker 应用程序的工具。Harbor的每个组件都是以Docker容器的形式构建的,所以使用Docker Compose来对它进行部署
连接harbor主机
[root@jumpserver ~]# ssh k8s@192.168.1.252 -p2222
输入p,显示有权限的机器
输入1,连接机器
从1.252堡垒机拷贝harbor软件到1.100主机
[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]# cd /root/harbor/
[root@harbor harbor]# yum -y install docker-ce
[root@harbor harbor]# systemctl enable --now docker
部署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 443
15 #port: 443 #加上注释
16 # The path of cert and key files for nginx
17 #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))
3、登录harbor
另外购买一个新的公网IP,绑定到harbor主机
访问:http://公网IP地址:80,用户名:admin 密码:Harbor12345
4、制作镜像
1.1 tomcat、filebeat镜像
退出harbor主机的登录,连接test主机
使用test主机测试,test主机安装docker软件
[k8s@test ~]$ sudo -s
[root@test k8s]# yum -y install docker-ce
更改配置文件,指定私有仓库地址
[root@test k8s]# mkdir /etc/docker
[root@test k8s]# vim /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://08fd0a6fce0026040ffdc0158fe37d60.mirror.swr.myhuaweicloud.com"],
"insecure-registries":["harbor:80"]
}
[root@test k8s]# systemctl enable --now docker
[root@test k8s]# vim /etc/hosts #配置主机名解析
192.168.1.100 harbor
[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 -r /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 #查看是否启动
1.2 打标签上传镜像
[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查看,可以看到上传的镜像
1.3 测试下载镜像
将系统中目前有的镜像文件删除, 从私有镜像仓库中下载镜像
[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
明确的看到该镜像的下载次数为1
如果harbor停止了,可以通过堡垒机jumpserver连接harbor
使用如下命令启动
[k8s@harbor ~]$ sudo -s
[root@harbor k8s]# cd /usr/local/harbor/
[root@harbor harbor]# docker-compose up -d
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)