大白话【11】容器-先导片

1.背景

程序换台机器就运行不起来了?
程序依赖环境运行;环境包括(操作系统+依赖库+配置)

将环境和程序一起打包给对方运行解决问题---引申出docker工具软件

2. 基础镜像(base image)是什么?

环境不同会导致程序运行结果不同
统一环境:最重要的就是操作系统;将所有程序都跑在同一个操作系统上。
操作系统分为用户空间和内核空间。
应用程序运行在用户空间,因此我们可以阉割操作系统只需利用操作系统的用户空间部分就能构建应用所需环境
将操作系统的用户空间+文件系统+依赖库+程序,打包成一个类似压缩包的文件这就是基础镜像(base image)

 3.dockerfile是什么?

dockerfile是什么?一份列清楚从操作系统到应用启动需要做哪些事情的清单文件

4.容器镜像是什么? 

dockerfile只描述了要做哪些事并没有真正做。当我们用命令docker build时,docker软件就会按照dockerfile的说明一行行
构建环境加应用程序;最终将这个环境加程序打包成一个类似压缩包的东西成为容器镜像Container image
只要将容器镜像传到任意一台服务器上,对压缩包解压缩就能同时运行环境和程序

 5.如何将容器镜像传到多台服务器上?

docker registry是什么?
参考github代码仓库的做法:通常使用git push 将代码传到github,有需要的人自己通过git pull的方式将代码从github拉倒自己的机器上
docker也是;装一个镜像仓库,通过docker push将镜像推到仓库,有需要的时候再通过docker pull将镜像拉到机器上。这个负责管理镜像仓库推拉能力的服务就是docker registry

6. 容器是什么?

现在我们知道服务器间传输容器镜像的问题:通常跑到目的服务器上执行docker pull 拿到容器镜像再执行docker run命令解压缩这个类似‘压缩包’的容器镜像,
获得一个独立的环境和应用程序并运行起来。这样一个独立的环境和应用程序就是容器container。
可以在一个操作系统上同时跑多个容器,且容器之间都是互相独立,互相隔离的,

7.容器和虚拟机的关系? 

容器利用一个叫Namespace的能力让它看起来像是一个独立操作系统;再利用一个叫Cgroup的能力限制它能使用的计算资源。因此容器本质是自带独立运行环境的特殊进程。底层用的是宿主机的操作系统内核。

8.docker的架构原理 

是CS架构-client对应docker-cli ; server对应docker daemon 。我们在命令行里敲docker命令使用的就是docker-cli ,docker-cli会解析我们输入的command命
令,然后调用docker daemon守护进程提供的restful Apl (守护进程收到命令后,会根据命令创建和管理各个容器)
docker daemon内部分为docker server 和 Engine 两层;docker server本质是http服务器,负责对外提供操作容器和镜像的API接口接收到API请求后会分发任务给engine层,engine层负责创建job,由job实际执行各种工作不同的docker命令会执行不同类型的job任务。
如果执行docker build命令,job则会根据dockerfile指令像包洋葱皮似的一层层构建容器镜像文件,
如果执行docker pull/push命令镜像推拉操作,job则会跟外部的docker registry交互将镜像上传或下载
如果执行docker run命令,job就会基于镜像文件调用containerd组件,驱使runC组件创建和运行容器

9.docker周边

9.1docker compose是什么?

docker容器本身只是一个特殊进程,想要部署多个容器,且对这些容器的顺序有一定要求如何实现?通过yaml文件,写清楚部署的容器有哪些?部署顺序?以及容器占用的CPU和内存等信息。
然后通过一行docker-compose up命令解析yaml文件,将容器们一键按顺序部署

 9.2docker swarm是什么?

docker解决的是一个容器的部署;docker compose解决的是多个容器组成的一整套服务的部署;docker swarm解决的是这一整套服务在多台服务器上的集群部署

 9.3docker和K8S的关系是什么?

k8s 它会在多台node的服务器上调度Pod进行部署和扩缩容,每个Pod'内部可以含有多个container ,每个container 本质上就是一个服务进程。
其实docker swarm是K8S的竞品
docker部署的容器其实就是k8s调度的pod里的container;docker compose基于多个container 创建一整套服务其实就是K8S里的Pod
而docker swarm做的事情和K8S一样,本质上就是调度Pod
k8s 的官方定义叫容器编排引擎。将它理解为以API编程的方式管理安排各个容器的引擎

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卷积神经网络(CNN)是一种常用于图像处理和模式识别的深度学习模型。它的设计灵感来自于生物学中视觉皮层的神经元结构。为了用通俗的语言解释CNN,我们可以用以下方式来理解它: 假设你要识别一张猫的图。首先,你的大脑会将这张图的像素点转化成一系列数字,并且记录下它们的位置和颜色。然后,大脑会将这些数字输入到“卷积层”中。 在卷积层中,会有很多个“过滤器”。这些过滤器可以视为一双眼睛,它们通过抓取图的不同特征来帮助你识别物体。每个过滤器都在图上滑动并计算一个“特征图”,这个特征图描述了所检测到的特定特征。例如,一个过滤器可以检测到猫的边缘,另一个可以检测到猫的颜色等等。当所有过滤器完成计算后,就会得到一些不同的特征图。 在“池化层”中,每个特征图都会被压缩,去除一些不重要的信息。这样可以减少需要计算的数据量,并且使得特征更加鲁棒和不变形。 最后,在全连接层中,所有的特征图都被连接起来,形成一个巨大的向量。接下来,这个向量会通过一些神经元节点,最终输出识别结果,也就是“这是一张猫的图”。 CNN的一个重要特点是参数共享,这意味着每个过滤器会在整个图上进行计算,而不仅仅是某个局部区域。这样可以减少需要计算的参数量,提高训练速度和模型的泛化能力。 总结一下,CNN通过卷积层来提取图像的特征,并通过池化层降低特征的维度。最后,通过全连接层将所有特征连接起来并输出结果。这种结构使得CNN非常适合于图像分类和识别任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值