docker k8s

news2024/11/19 13:29:19

1、docker是什么?

将环境和程序一起打包给到 服务器运行的工具软件。

2、基础镜像base image是什么?

操作系统:用户空间、内核空间

阉割操作系统,利用其的用户空间(因为应用程序运行在用户空间),文件系统,依赖库打包成一个类似“压缩包”的文件。这就是所谓的基础镜像base image。


3、dockerfile是什么?

有了base image还不够,我们还需安装一些依赖和创建一些文件夹,最后才是运行我们的目标应用程序。因此我们将所有的要做的事情以命令行的形式分行列举出来,类似于一份todo List。像这份列清楚了从操作系统到应用服务启动需要做哪些事情的清单文件就是所谓的dockerfile。

4、container image(容器镜像)是什么

dockerfile只是描述了做哪些事情,并没开始做,用命令docker build执行的时候,docker软件就按照dockerfile说明,一行行构建环境加应用程序,最终将这个环境和应用程序打包成一个类似“压缩包”的东西,我们把它称之为容器镜像。

只要将容器镜像传到任意一台服务器对该“压缩包”进行“解压缩”,就可以同时运行环境和程序。

5、registry是什么?

服务器那么多,挨个将容器镜像传到上去,压力给到发送方的网络带宽了。

因此弄一个镜像仓库,通过docker push到镜像仓库,有需要的服务器通过docker pull将镜像拉到机器上,这个负责管理镜像仓库推拉能力的服务叫做docker registry。

6、容器是什么?

通过指令docker pull在服务器上拿到容器镜像,通过docker run,将这个类似压缩包的容器镜像进行解压缩,获得一个独立的环境和应用程序,并运行起来,这样一个独立的环境和应用程序就是所谓的容器。我们可以在一个操作系统上同时跑多个容器,且这些容器互相独立和隔离。

7、容器和虚拟机的关系

区别:容器不带操作系统,虚拟机带有一个操作系统。容器只包含核心依赖库和配置文件等必要组件,它利用一个namespace的能力,让它看起来像一个独立的操作系统。再利用一个cgroup的能力限制它能使用的计算资源。因此容器是一个自带独立运行环境的特殊进程,底层用的是宿主机的操作系统内核。

8、docker 的架构原理

经典的client-server架构。client对应docker-cli,sever对应docker daemon。我们在命令行里敲docker命令,使用的就是docker-cli,docker-cli会解析我们输入的command命令,然后调用docker daemon守护进程提供的restful-api,守护进程收到命令后,会根据命令创建和管理各个容器。

docker daemon架构:

docker daemon分成docker server和engine两层。docker server是个http服务器,负责对外提供操作容器和镜像api。接口接收到api请求后,会分发任务给engine层,engine层负责创建job,由job实际执行各种工作。

不同的docker命令会执行不同类型的job任务。

(1)docker build命令执行过程。

job根据dockerfile指令,像包洋葱皮似的一层层构建容器镜像文件。

(2)docker pull/push命令执行过程。

镜像推拉操作,job会根据外部的docker registry交互将镜像上传/下载。

(3)docker run命令执行过程。

job基于镜像文件调用containerd组件,驱使runC组件创建和运行容器。

9、docker compose是什么?多个容器一整套的部署。

docker容器本身是一个特殊的进程,但我们想部署多个容器,且对这些容器的顺序有一定的要求。比如一个博客,先启动数据库,再启动身份验证服务,最后启动博客微服务。因此普通做法是依次启动服务,但有更优雅的启动方式,通过一个yaml文件,写清楚要部署的容器有哪些,以及部署顺序,以及容器占有的cpu和内存信息。只需要通过docker compose命令解析yaml文件,将容器们一键按照顺序部署,就完成一整套的部署。

10、docker swam

它解决的是一整套服务,在多台服务器上的集群部署问题。如在a服务器上坏了,可以部署到b服务器上。还能根据需要对应用做扩缩容。

11、docker和k8s的关系。

k8s它会在多台node的服务器上调度pod进行部署和扩缩容。每个pod含有多个container,每个container本质上是一个服务进程。

k8s和swam的功能很像。

docker部署的容器就是k8s调度的pod里的container,它们都叫容器。docker compose基于多个docker container创建一整套服务,其实就是k8s里的pod。而docker swarn做的事情和k8s一样,本质就是在调度pod。

k8s称之为容器编排引擎,将它理解为以api编程的方式管理安排各个容器的引擎。

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

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

相关文章

永磁同步电机离线参数识别

引言 永磁同步电机(PMSM)因其结构简单、功率密度高、转矩惯量比大和效率高等优点,在工业生产、航空航天和新能源交通等领域得到了广泛应用。然而,传统的参数辨识方法依赖位置传感器,这不仅增加了硬件成本,…

薄冰英语语法学习--名词3-性别

上面的是人。 下面的是动物。 花个2分钟看一下人的,在花2分钟看一下动物的。记不住没关系,读一遍。像 我这样 男人 man ,女人 woman 。xxx xxx ,xxx ,xxx 读完发现很多带ness代表雌性的。 核心 英语中的雌雄可以用,man 和 wo…

C++ :lambda表达式

目录 lambda表达式书写格式: lambda表达式各部分说明: lambda的使用示范: 注意事项: 返回值类型可以省略,参数也可也省略: sort内部也可以直接写lambda表达式: 排序时利用lambda进行排序…

【正点原子K210连载】第十六章 machine模块实验 摘自【正点原子】DNK210使用指南-CanMV版指南

1)实验平台:正点原子ATK-DNK210开发板 2)平台购买地址https://detail.tmall.com/item.htm?id731866264428 3)全套实验源码手册视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban 第十六章 machine模块…

小区服务前台小程序的设计

管理员账户功能包括:系统首页,个人中心,住户管理,管理员管理,员工管理,安保管理,安保分配管理,客服聊天管理 微信端账号功能包括:系统首页,公告,…

AI绘画Stable Diffusion 高清放大,多种方法详解,建议收藏!

👣 本章概述 在Stable Diffusion我们想要得到一张高分辨率且具有细节特征的图片时,我们就需要使用一些图片放大算法来帮助我们实现。 本文主要概述在sd中常常使用的高清修复方法以及不同方法的区别和应用场景。同时也给出一些推荐的工作流,你…

python实现符文加、解密

在历史悠久的加密技术中,恺撒密码以其简单却有效的原理闻名。通过固定的字母位移,明文可以被转换成密文,而解密则是逆向操作。这种技术不仅适用于英文字母,还可以扩展到其他语言的字符体系,如日语的平假名或汉语的拼音…

jvm性能监控常用工具

在java的/bin目录下有许多java自带的工具。 我们常用的有 基础工具 jar:创建和管理jar文件 java:java运行工具,用于运行class文件或jar文件 javac:java的编译器 javadoc:java的API文档生成工具 性能监控和故障处理 jps jstat…

Pickle, SafeTensor, GGML和GGUF

如今,大型语言模型的使用方式有以下几种: 作为 OpenAI、Anthropic 或主要云提供商托管的专有模型的 API 端点作为从 HuggingFace 的模型中心下载的模型工件和/或使用 HuggingFace 库进行训练/微调并托管在本地存储中作为针对本地推理优化的格式的模型工…

springboot学习,如何用redission实现分布式锁

目录 一、springboot框架介绍二、redission是什么三、什么是分布式锁四、如何用redission实现分布式锁 一、springboot框架介绍 Spring Boot是一个开源的Java框架,由Pivotal团队(现为VMware的一部分)于2013年推出。它旨在简化Spring应用程序…

Verilog中的wire和reg有什么区别

大多数初学者还没有真正很难掌握Verilog/SystemVerilog硬件描述语言(HDL)中wire(网络)和reg(变量)的区别。这个概念是每个经验丰富的RTL设计都应该熟悉的。但是现在有许多没有Verilog开发经验的验证工程师都…

mybatis延迟加载

mybatis延迟加载 1、延迟加载概述 应用场景 ​ 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 延迟加载的好处 ​ 先从单表查询、需要时再从关联表去关联查…

最短路模型——AcWing 188. 武士风度的牛

最短路模型 定义 最短路模型是图论中的一个经典问题,旨在寻找从图中一个顶点到另一个顶点的路径,使得这条路径上的边(或边的权重)之和最小。这一模型在许多实际问题中有着广泛的应用,比如网络路由、地图导航、物流配…

音频转文字怎么转?4个音频转文字的方法一定要知道

随着夏日脚步的到来,各类活动和准备工作也随之增多。 在这样一个忙碌的时期,整理会议的音频记录变得尤为关键。然而,单单依靠手动整理,不仅耗时耗力,还可能出现错漏。 但也不用太着急,下面将为大家介绍几…

生产者发送数据,kafka服务器接收数据异常的问题记录

现象: 某个客户要求审计日志用kafka的方式传输给他们,使用了第三方的librdkafka库来开发。 往客户提供的kafka服务器上的一个topic发送数据,这个topic有三个分区,客户反馈接收到的数据和发送端发送的实际数量对不上,他…

韩顺平0基础学java——第34天

p675-689 UDP网络编程 1.类 DatagramSocket和 DatagramPacket[数据包/数据报]实现了基于UDP协议网络程序。 2.UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。 3.DatagramPacket对象…

python-docx 设置水印字体

本文目录 前言一、水印的XML在哪里1、Word内置水印设置2、自定义XML部件3、Header or Footer二、确认位置三、水印表前解释1、水印XML源代码2、水印结构解析3、关于style的详解三、修改水印样式前言 本文我们来完成一个有趣的玩意儿:在Python中通过操作Word文档的XML来设置整…

MeterSphere v3.0全新启航,让软件测试工作更简单、更高效

2024年7月1日,MeterSphere v3.0版本正式发布。MeterSphere v3.0是新一代的测试管理和接口测试工具,致力于让软件测试工作更简单、更高效,不再成为持续交付的瓶颈。 在团队协作方面,针对目前企业软件测试团队所面临的测试工具不统…

【SpringBoot3学习 | 第2篇】SpringBoot3整合+SpringBoot3项目打包运行

文章目录 一. SpringBoot3 整合 SpringMVC1.1 配置静态资源位置1.2 自定义拦截器(SpringMVC配置) 二. SpringBoot3 整合 Druid 数据源三. SpringBoot3 整合 Mybatis3.1 Mybatis整合3.2 声明式事务整合配置3.3 AOP整合配置 四. SpringBoot3 项目打包和运行…

ROS学习笔记(17):建图与定位(1)

目录 0.前言 1.定位和建图 1.里程计(Odometry) 2.扫描匹配(Scan Matching) 3.结尾 0.前言 好久不见各位,前段时间忙着考试(6级和一些专业课)和摆烂断更了近30天,现在哥们回来更…