基于k8s快速搭建docker镜像服务的demo

基于k8s快速搭建docker镜像服务的demo

一、环境准备

如标题,你需要环境中有2个平台,并且服务器上也已经安装好docker服务

接下来我来构建一个docker镜像,然后使用harbor+k8s来快速部署服务demo

二、部署概述

使用docker构建镜像,然后推送到镜像仓库harbor上,再通过k8s创建工作负载,构建服务运行

三、具体步骤

一、将可执行的springboot项目jar包封装成镜像

1、编写dockerfile文件
shell 复制代码
# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY Hello.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

项目jar包和dockerfile文件放在同一目录下

2、将项目构建成镜像文件

由于我现在的线上服务器环境无法构建镜像文件,我需要先在本地build构建镜像文件,再把项目保存为tar包文件,再上传到线上服务器上,最后加载出镜像,现描述这种方式执行过程(如果线上服务器docker能build,执行(1)就行)

(1)本地build构建镜像文件

shell 复制代码
docker build -t 镜像名称:版本  dockfile所在路径

(.表示dockerfile与项目jar包在同一目录下)

构建完成后,可发现镜像已生成

shell 复制代码
docker images

(2)将Docker镜像保存为.tar文件,

shell 复制代码
docker save -o <输出文件名>.tar <镜像名>

(3)tar文件上传到线上服务器上

可通过ftp传输,这里不再赘述

(4)加载tar包文件为镜像

文件上传到线上服务器后,加载生成镜像

shell 复制代码
docker load -i tar包文件

二、打标签与推送到harbor仓库

shell 复制代码
# docker tag 镜像名:版本 harbor地址/项目名/镜像名:版本
docker tag hello:1.0 xx.xx.xx/demo/hello:1.0
# docker push harbor地址/项目名/镜像名:版本
docker push xx.xx.xx/demo/hello:1.0

完成后可前往harbor仓库查看

三、使用k8s构建容器服务

创建流程大致为:

创建项目-创建工作负载-创建服务

我挑几个重点来说

1、工作负载

在容器组设置中,选择镜像最好指定镜像在仓库的完整地址,方便快速定位选择

在创建服务时,容器端口要和项目启动的端口保持一致,不然无法访问到服务

访问模式我选择的是NodePort,他会随机生成一个端口

创建好服务后,通过ip加端口就能访问部署的服务了

至此,项目成功部署

我还在网上找到一张Jenkins+k8s+harbor部署方式,大家也可以尝试一下

相关推荐
暗影凋落6 分钟前
docker-image 工具展示更详细镜像层内容
运维·docker·容器
极客先躯23 分钟前
高级java每日一道面试题-2026年05月11日-实战篇[Docker]-如何容器化金融产品推荐系统?
java·运维·docker·容器·金融·高级面试·金融产品推荐系统
江湖有缘2 小时前
Docker实战 : 使用Docker部署Musicn音乐下载工具
docker·容器·eureka
沉迷学习 日益消瘦2 小时前
17-Custom Resource 入门
docker·容器·kubernetes
沉迷学习 日益消瘦3 小时前
14-Pod 安全上下文
安全·kubernetes
腾飞开源5 小时前
01_K8s干货笔记之认识K8s
运维·笔记·云原生·容器·kubernetes·k8s·容器化部署
江湖有缘14 小时前
Docker实战 :使用Docker部署OneTerm堡垒机
运维·docker·容器
张忠琳15 小时前
【NPU】Ascend Docker Runtime v26.0.1 之二 runtime/process/process.go — 超深度逐行分析
云原生·容器·架构·kubernetes·npu·docker-runtime
Kevin Wang72719 小时前
Nvidia-AGX-spark部署手册——课堂质量诊断(jetpack:r36)
python·docker·容器
回眸不遇21 小时前
将 Docker虚拟磁盘文件ext.vhdx迁移出C盘 ,更换到D盘
c语言·docker·容器