Windows安装Docker Desktop开启 Kubenetes制作并部署本地镜像

1、安装Docker Desktop

docker desktop官方下载链接,下载后一路点下来安装就好了。

2、制作本地镜像

跟着docker步骤制作镜像,需要先配置docker 镜像源,因为网络问题

{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"debug": true,"dns": ["8.8.8.8","8.8.4.4"],"experimental": false,"features": {"buildkit": false},"insecure-registries": ["registry.docker-cn.com","docker.mirrors.ustc.edu.cn"],"registry-mirrors": ["https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://docker.rainbond.cc","https://do.nark.eu.org","https://dc.j8.work","https://dockerproxy.com","https://gst6rzl9.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com","http://mirrors.ustc.edu.cn/","https://mirrors.tuna.tsinghua.edu.cn/","http://mirrors.sohu.com/"]
}

git clone https://github.com/docker/welcome-to-docker

cd welcome-to-docker

检查dockerfile,并执行

docker build -t welcome-to-docker .

制作好之后,images列表就有了:


 

3、在docker desktop运行镜像

 在Images列表,找到镜像,点击三角形run,指定端口,就可用运行。

例如名字是hello-docker,端口是8090,运行后,就会在Containers中出现,可查看日志、执行命令。

3、开启Kubenetes

如果需要Kubenetes管理镜像,可用在docker desktop开启,因为网络原因,要从阿里云镜像源下载kubenetes的镜像。

clone  k8s-for-docker-desktop 这个项目,找到 load_images.ps1 这个 powershell 文件,直接运行,

在powershell中执行

./load_images.ps1 

如果没有权限,可用先执行

Set-ExecutionPolicy RemoteSigned

images.properties 文件中列到的镜像可以看到kubenetes的版本,注意要与Docker Desktop的相同。

这样就把kubenetes的镜像拉下来了。

然后点击设置,启用Kubenetes

Apply&Restart之后,左下角就看见Kubenetes running了。

4、在Kubenetes运行镜像

刚刚制作的镜像要在kubenetes运行,就需要一个k8s.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: hello-docker-deployment # 部署的名称namespace: defaultlabels:app: hello-docker  # 给资源打标签,便于筛选和管理
spec:replicas: 2  # 定义副本数量以确保高可用selector:matchLabels:app: hello-docker  # 匹配 Pod 的标签,确保服务与 Pod 绑定template:metadata:labels:app: hello-docker  # Pod 的标签,需与 selector 对应spec:containers:- name: hello-docker  # 容器名称imagePullPolicy: Neverimage: welcome-to-docker:latest  # 使用构建的镜像名称和标签,从远程仓库拉取镜像ports:- containerPort: 3000  # 容器内部监听的端口env:- name: FLASK_APPvalue: "app.py"  # 设置 Flask 的主程序文件- name: FLASK_ENVvalue: "production"  # 设置 Flask 的运行环境- name: PYTHONDONTWRITEBYTECODEvalue: "1"  # 禁止生成 .pyc 文件- name: PYTHONUNBUFFEREDvalue: "1"  # 设置 Python 日志为非缓冲模式resources:  # 资源限制requests:memory: "128Mi"  # 请求的最小内存cpu: "250m"  # 请求的最小 CPUlimits:memory: "256Mi"  # 最大允许使用的内存cpu: "500m"  # 最大允许使用的 CPUlivenessProbe:  # 存活探针,用于检测服务是否存活httpGet:path: "/"  # 检测的路径port: 3000  # 检测的端口initialDelaySeconds: 5  # 初始延迟periodSeconds: 10  # 检测间隔readinessProbe:  # 就绪探针,用于检测服务是否准备好接收流量httpGet:path: "/"  # 检测的路径port: 3000  # 检测的端口initialDelaySeconds: 5  # 初始延迟periodSeconds: 10  # 检测间隔restartPolicy: Always  # 容器策略:始终重启
---
apiVersion: v1
kind: Service
metadata:name: hello-docker-service # 服务的名称labels:app: hello-docker  # 标签与 Deployment 一致
spec:selector:app: hello-docker  # 匹配 Deployment 的标签ports:- protocol: TCPnodePort: 30008  # 可以省略,Kuberrnetes 会自动分配一个端口 范围 30000-32767port: 3000  # 服务暴露的端口targetPort: 3000  # 转发到容器的端口type: NodePort    # 服务类型,NodePort 通过在每个 Node 上打开一个特定端口,将外部请求转发到集群内部的Service,进而达到后端的Pod

然后执行命令即可(这里本地运行的关键是yaml的  imagePullPolicy: Never,不然就要将镜像推送到docker仓库才行)

kubectl create -f k8s.yaml

 因为k8s.yaml定义了30008端口映射3000,所以使用http://localhost:30008/访问即可:

参考资料:在 Docker Desktop 中启用 K8s 服务 - 墨墨墨墨小宇 - 博客园

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

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

相关文章

嵌入式学习笔记 - freeRTOS 列表,链表,节点跟任务之间关系

一 下图说明了 freeRTOS 就绪列表,链表,节点跟任务之间关系 一个任务对应一个节点,一个链表对应一个优先级,一个任务根据优先级可以插入任何一个链表中。 插入函数为,这也是freeRTOS的核心函数,对每个任务…

scikit-learn pytorch transformers 区别与联系

以下是 scikit-learn、PyTorch 和 Transformers 的区别与联系的表格形式展示: 特性/库scikit-learnPyTorchTransformers主要用途传统机器学习算法深度学习框架预训练语言模型与自然语言处理任务核心功能分类、回归、聚类、降维、模型选择等张量计算、自动微分、神经网络构建与…

【C/C++】从零开始掌握Kafka

文章目录 从零开始掌握Kafka一、Kafka 基础知识理解(理论)1. 核心组件与架构2. 重点概念解析 二、Kafka 面试重点知识梳理三、C 使用 Kafka 的实践(librdkafka)1. librdkafka 简介2. 安装 librdkafka 四、实战:高吞吐生…

Spyglass:目标文件(.spq)的结构

相关阅读 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 预备知识 为了方便检查,Spyglass向用户提供Guideware作为检查参考;Guideware又包含各种方法(Methodology),应用于设计的不同阶段&…

一些Dify聊天系统组件流程图架构图

分享一些有助于深入理解Dify聊天模块的架构图 整体组件架构图 #mermaid-svg-0e2XalGLqrRbH1Jy {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-0e2XalGLqrRbH1Jy .error-icon{fill:#552222;}#mermaid-svg-0e2XalGLq…

地理空间索引:解锁日志分析中的位置智慧

title: 地理空间索引:解锁日志分析中的位置智慧 date: 2025/05/24 18:43:06 updated: 2025/05/24 18:43:06 author: cmdragon excerpt: 地理空间索引在日志分析中应用广泛,涉及用户登录IP定位、移动端位置轨迹和物联网设备位置上报等场景。MongoDB支持2dsphere和2d两种地理…

分库分表深度解析

一、为什么要分库分表? 通常,数据库性能受到如下几个限制: 硬件瓶颈:单机的 CPU、内存、磁盘 I/O 等资源总是有限。例如,当单表中的记录达到上亿、甚至更高时,表扫描、索引维护和数据迁移会变得非常慢。单…

QListWidget的函数,信号介绍

前言 Qt版本:6.8.0 该类用于列表模型/视图 QListWidgetItem函数介绍 作用 QListWidget是Qt框架中用于管理可交互列表项的核心组件,主要作用包括: 列表项管理 支持动态添加/删除项:addItem(), takeItem()批量操作:addItems()…

ModbusRTU转profibusDP网关与RAC400通讯报文解析

ModbusRTU转profibusDP网关与RAC400通讯报文解析 在工业自动化领域,ModbusRTU和ProfibusDP是两种常见的通信协议。ModbusRTU以其简单、可靠、易于实现等特点,广泛应用于各种工业设备之间的通信;而ProfibusDP则是一种高性能的现场总线标准&am…

Python容器

一、容器 1. 列表【】:有序可重复可混装可修改 [元素1,元素2,元素3,...] • 可以容纳多个元素 • 可以容纳不同类型的元素(混装) • 数据是有序存储的(有下标序号) • 允许重复数…

webpack面试问题

一、核心概念 Webpack的构建流程是什么? 答案: 初始化:读取配置,创建Compiler对象编译:从入口文件开始,递归分析依赖关系,生成依赖图模块处理:调用Loader转换模块(如babel-loader)输出:将处理后的模块组合成Chunk,生成最终文件Loader和Plugin的区别? Loader:文件…

uniapp-商城-66-shop(2-品牌信息显示,数据库读取的异步操作 放到vuex actions)

完成页面的显示,但是还需要进行修改,这里涉及到修改中的信息同步显示。也会涉及到数据的读取,修改和同步。 本文介绍了如何使用Vuex管理品牌数据,实现数据的同步显示和修改。主要内容包括:1.将获取品牌数据的异步操作封…

使用Pyinstaller打包python,全过程解析【2025最详细】

一、如何使用 Pyinstaller 打包 Python 程序 1.打开终端 右键点击文件夹空白处,选择 打开于 > 打开终端 2.安装 pyinstaller 在打开的终端中,输入命令【pip install pyinstaller】 使用 Python 包管理工具 pip 来安装 Pyinstaller。等待安装过程结…

GPU加速Kubernetes集群助力音视频转码与AI工作负载扩展

容器编排与GPU计算的结合,为追求性能优化的企业开辟了战略转型的新路径 基于GPU的托管Kubernetes集群不仅是技术选择,更是彻底改变企业处理高负载任务的战略部署方式。 随着人工智能和机器学习项目激增、实时数据处理需求的剧增,以及高性能媒…

LINUX 524 rsync+inotify 调试(问题1:指定端口无法同步/已通过;问题2:rsync.log文件中时间不显示/已显示)

怎么把java文件夹给传过去了 rsync inotify 监控代码实时传输调试 没看到日志 这里面有了 rsync -e"ssh -p 3712" -av /root/app/java/ code192.168.235.100:/home/code/backup/java_backup/ 文件夹后面的/要加上 [rootlocalhost java]# cat /var/log/rsync.log…

Python入门手册:条件判断

条件判断是编程中不可或缺的一部分,它允许程序根据不同的条件执行不同的代码块。Python提供了if、elif和else语句来实现条件判断。通过这些语句,你可以控制程序的流程,使其能够根据不同的情况做出相应的反应。本文将详细介绍Python中的条件判…

x-cmd install | cargo-selector:优雅管理 Rust 项目二进制与示例,开发体验升级

目录 功能亮点安装优势特点适用场景总结 还在为 Rust 项目中众多的二进制文件和示例而烦恼吗?cargo-selector 让你告别繁琐的命令行,轻松选择并运行目标程序! 功能亮点 交互式选择: 在终端中以交互方式浏览你的二进制文件和示例&…

Baklib知识中台高效实践路径

知识中台全周期构建路径 Baklib在构建知识中台全周期管理体系时,以知识价值转化为核心导向,通过三阶段递进实现闭环运作。在知识采集阶段,运用智能爬虫与API接口技术,聚合分散在业务系统、文档库及沟通工具中的碎片化知识资产&am…

mapbox进阶,手写放大镜功能

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.1 ☘️mapboxgl.Map style属性二、🍀手写放大镜功能1. ☘️实现思路2. ☘️…

康佳Java开发面试题及参考答案

面向对象三大特性是什么?请举例说明多态。 面向对象编程(OOP)的三大核心特性是封装、继承和多态。封装是将数据和操作数据的方法绑定在一起,并隐藏对象的内部实现细节;继承允许一个类继承另一个类的属性和方法&#x…