Container容器技术简介

本文介绍了容器技术出现背景,docker技术与容器编排技术的简单说明

背景

在传统项目的生产环境中,迁移一个用户态进程往往非常麻烦,因为一个用户态进程背后会附带这非常多例如函数库、中间件等的依赖项,但又没有像apt和yum一样的技术能够一次性解决各种依赖项。万一在迁移时,出现了一些数据可能的丢失,一些参数的错误,经常会导致迁移之后进程无法正常拉活。

我们一般采用的是将虚拟机整个打包成image进行I2I的离线迁移,但是由于迁移的是整个操作系统,其中会包括对于这个进程大量无用的要素,臃肿的系统会导致整个过程非常缓慢。说白了,我们跑这个进程只需要那么几个东西,结果你给我整个系统都迁移过来了。

在软件开发的领域,一些开发环境、测试环境也面临着这样的问题,搭建环境往往是一个非常费时费力错误率很高的活动。

那么有没有什么技术能够解决上述的这个问题呢,有,这就是容器Container技术

容器与虚拟机对比

Docker

docker是最经典的容器技术,它分为两个版本
-CE版本(社区版)
——edge版-每月更新 体验版
——stable版-稳定版
-EE版本(企业版)

docker作为client的构成分为三部分
1、docker deamon 守护进程(提供docker服务)
2、docker restful-api(通过http/https 发起访问)
3、client docker cli(使用docker 命令行进行管理,管理内容包括容器、镜像、存储、网络)

 docker的整体框架如下图所示
1、docker host运行docker主机
2、docker client命令行控制的客户端
3、docker registry镜像仓库

一般来说是由client通过pull命令通知docker daemon去registry拉取镜像到本地images,拉取完成后通过run命令通知docker daemon启动container

docker镜像的获取方式有两种,一种是从自己的docker file中构建,一种是从docker镜像仓库中获取

docker registry是存放容器镜像的仓库,用户可以进行镜像下载和访问,分为公有和私有两类registry
公有镜像仓库:
比如docker hub,是docker公司为公众提供的托管registry,是世界上最大的容器镜像仓库 Docker Hub
quay.io,是红帽的公共托管registry Repositories · Quay
私有镜像仓库:
可以由企业搭建私有registry,也可以由个人搭建,registry本身是一个开源的项目,可以用于搭建registry

容器编排

容器编排说简单点,就是容器的管理
类似于OpenStack管理kvm的虚拟机,容器编排技术就是通过写编排文件,对于底下的容器进行管理的过程,常用的容器编排软件有k8s,docker swarm

云原生的概念就是从中提取出的,
cloud native computing foundation(CNCF)基金会——隶属于linux基金会,由谷歌Google推出

CNCF其中一个开源项目就是kubernetes(K8s)
kubernetes是一个开源的,用于管理云平台中多个主机的容器化的应用
其目标是让部署容器化的应用简单高效,是能够自主的管理容器
不仅支持docker,也支持rocket等容器

containerd 容器技术框架

各家云厂商都有针对自己的云或者自己搞了个容器编排工具来支持自己的产品,
例如红帽基于kubernetes进行二次开发,推出了openshift
亚马逊推出了AWS ECS——Amazon Elastic Container Service

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

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

相关文章

linux 僵尸进程 关闭看不见的进程

多卡训练,如果显存不够,程序会崩溃退出,但是gpu显存会一直占用。 nvidia-smi看不到相关进程,关闭进程方法: 目录 查询进程: 关闭方法 1: 使用 pkill 方法 2: 使用 ps, grep 和 awk 结合 kill 查询进程…

洗地机哪个牌子好用?洗地机希亦、石头、添可、西屋谁的清洁力更强?

洗地机的出现极大地改善了清洁过程,提高了效率,减少了人力投入。但随着市场上洗地机的种类和功能不断增加,人们可能会感到困惑,不知道如何选择适合自己需求的机器。为了帮助消费者更好地了解洗地机的选择,今天我将带大…

java21实战record

java程序员一直以如何让代码写的可维护性跟高,不论是框架还是代码都追求精益求精。 第一阶段:由于面向对象的要求,我们会将成员变量用私有属性修饰,但是,如果面临类中的成员变量比较多的情况下,修改会非常麻…

【python】包(package)与模块(module)、import、__name__与__main__

导入模块一般写在程序最前面,且顺序为:内置模块、第三方模块、自定义模块 一、模块(module)与包(package) 模块(module)可以理解为是一个.py文件,import 模块 相当于执行…

C语言-详解指针

目录 一.内存 1.内存的定义 2.内存的结构图 二.地址 1.什么是地址 2.什么是变量的地址 三.什么是指针 1.指针的定义 四.如何获取数据存储空间的地址 1.&运算符 五.指针变量 1.什么是指针变量(一级指针变量) 2.指针变量的定义 3…

Http中post和get

get产生一个tcp数据包,服务器只响应一次,而post请求服务器会响应两次(第一次发送请求头响应100,再次响应返回200,成功

高性能、低功耗并附带RAM的涓流充电实时时钟电路芯片D1302的描述

D1302是一块高性能、低功耗并附带RAM的涓流充电实时时钟电路。 主要特点: ● 实时时钟可提供秒、 分、小时、星期、日期、月 份和年等计时数据,到2100 年止。一个月小于31天时可自动调整,且具有闰年补偿功能 ● 31X8 位通用暂存RAM ● 采用…

XXL-JOB 日志表和日志文件自动清理

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

【POSTGIS】判定点位是否在范围内

项目上的需求,要判断当前打卡位置是否在项目范围10m内。 先做需求分析: (1)既然有10m的缓冲范围,那么就要用到st_buffer函数; (2)既然以m为单位,就要用到投影坐标系&…

vue中的动画组件使用及如何在vue中使用animate.css

“< Transition >” 是一个内置组件&#xff0c;这意味着它在任意别的组件中都可以被使用&#xff0c;无需注册。它可以将进入和离开动画应用到通过默认插槽传递给它的元素或组件上。进入或离开可以由以下的条件之一触发&#xff1a; 由 v-if 所触发的切换由 v-show 所触…

PHP之curl详细讲解

cURL&#xff08;全称为Client for URLs&#xff09;是一个功能强大的开源库&#xff0c;用于在多种协议上进行数据传输、发送HTTP请求和获取响应。它支持多种协议&#xff0c;包括HTTP、HTTPS、FTP、SMTP等&#xff0c;并且能够与各种服务器进行通信。 cURL库可以通过命令行工…

单机无锁线程安全队列-Disruptor

Disruptor 1、基本介绍 说到队列&#xff0c;除了常见的mq中间件&#xff0c;java中也自带线程安全的BlockingQueue&#xff0c;但是BlockingQueue通过在入队和出队时加锁的方式避免并发操作&#xff0c;性能上会大打折扣。 而Disruptor是一个线程安全、低延迟、吞吐量高的队…

redis整理

1. 数据类型 string , hash, 链表&#xff0c;Set, ZSet. string 底层是sds, sds与普通字符串的区别: a. sds存储了字符串长度&#xff0c;获取长度的时间复杂度为O(1); b. sds操作字符串会预先判断长度是否满足要求, 不会有字符串溢出的情况出现; c. 提前预分配, 惰性回收…

Vue学习计划--Vue2(四)watch、class、style、set

Vue 监听(watch): 监听一个属性的变化 监事属性watch: 当监视的属性变化时&#xff0c;回调函数自动调用&#xff0c;进行相关操作监视的属性必须存在&#xff0c;才能进入监视监视的两种写法&#xff1a; new Vue 时传入watch配置通过 vm.$watch()监视 immediate初始化时让han…

SpectralGPT: Spectral Foundation Model 论文翻译3

遥感领域的通用大模型 2023.11.13在CVPR发表 原文地址&#xff1a;[2311.07113] SpectralGPT: Spectral Foundation Model (arxiv.org) E.消融研究 在预训练阶段&#xff0c;我们对可能影响下游任务表现的各种因素进行了全面研究。这些因素包括掩蔽比、ViT patch大小、数据规…

多线程--11--ConcurrentHashMap

ConcurrentHashMap与HashMap等的区别 HashMap线程不安全 我们知道HashMap是线程不安全的&#xff0c;在多线程环境下&#xff0c;使用Hashmap进行put操作会引起死循环&#xff0c;导致CPU利用率接近100%&#xff0c;所以在并发情况下不能使用HashMap。 ConcurrentHashMap 主…

Linux信息收集

Linux信息收集 本机基本信息 #管理员 $普通用户 之前表示登录的用户名称&#xff0c;之后表示主机名&#xff0c;再之后表示当前所在目录 / 表示根目录 ~表示当前用户家目录1、内核&#xff0c;操作系统和设备信息 uname -a 打印所有可用的系统信息 uname -r 内核版本 u…

01_阿里云_Xshell连接服务器

PC使用Xshell连接阿里云服务器 问题引出 之前使用Xshell连接阿里云服务器连接的好好的&#xff0c;今天准备上去服务器学习Linux发现连不上了&#xff0c;后来发现是防火墙的问题&#xff0c;还有阿里云的安全组也需要设置 解决方案 方法一&#xff1a;&#xff08;简单粗暴…

3D模型材质编辑

在线工具推荐&#xff1a; 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 如今&#xff0c;3D 纹理、打印和建模都非常流行。使用可用的高级工具&#xff0c;创建 3D 模型…

基于Git的代码工程管理——学习记录一

一、Git简概[1] Git是一个分布式版本控制系统&#xff0c;它跟踪任何一组计算机文件的更改&#xff0c;通常用于在软件开发过程中协调协作开发源代码的程序员之间的工作。其为实现快速、数据完整性以及分布式非线性工作流程&#xff08;在不同计算机上运行数千个并行分支&#…