虚拟化及Docker基础

一、虚拟化

1.1 云端

1.2 云计算服务模式分层

1.3 虚拟化架构

1.3.1 寄居架构

1.3.2 原生架构

1.4 虚拟化产品

1.4.1 仿真虚拟化产品(对系统硬件没有要求,性能最低)

1.4.2 半虚拟化 (虚拟机可以使用真机物理机)

1.4.3 全虚拟化 (直接使用物理硬件,性能高)

1.4.4 KVM和EXSI详解

二、Docker

2.1 概念

2.2 优点

2.3 Docker与虚拟机的区别

2.4 容器技术

2.5 容器在内核中支持2种重要技术

2.6 namespace的六项隔离

​2.7 docker核心概念

2.8 安装 Docker

2.8.1 关闭防火墙和核心防护

2.8.2 安装依赖包

2.8.3 设置阿里云镜像源

2.8.4 安装 Docker-CE并设置为开机自动启动

2.8.5 查看 docker 版本信息

2.8.6 docker 信息查看

2.8.7 搜索镜像

2.8.8 获取镜像

2.8.9 镜像加速下载

2.8.10 查看下载的镜像文件信息

2.8.11 查看下载到本地的所有镜像

2.8.12 获取镜像详细信息

2.8.13 为本地的镜像添加新的标签

2.8.14 删除镜像


一、虚拟化

1.1 云端

国内云 华为云,阿里云、腾讯云,天翼云(私有云)

国外云 谷歌 亚马逊

1.2 云计算服务模式分层

laaS:Infrastructure(基础设施)-as-a-Service

PaaS:Platform(平台)-as-a-Service

SaaS:Software(软件)-as-a-Service

1.3 虚拟化架构

1.3.1 寄居架构

本机(真实的操作系统)-》虚拟化产品-》虚拟化操作系统或软件

1.3.2 原生架构

裸金属服务器-》虚拟化产品

1.4 虚拟化产品

1.4.1 仿真虚拟化产品(对系统硬件没有要求,性能最低)

vmware客户端 

vmware workstation        个人在windows安装的虚拟机

vmware Fusion MAC

1.4.2 半虚拟化 (虚拟机可以使用真机物理机)

(1)KVM/openstack(开发), linux 环境虚拟机,私有云环境

 KVM 基于内核的虚拟机主机,也可看做全虚拟化。

(2)半虛拟化reh15自带xen(虚拟机监视器),Hypervisor层

微软 Microsoft Hyper-v

virtualBox 7.0        虚拟盒子

cirix Hypervisor

1.4.3 全虚拟化 (直接使用物理硬件,性能高)

VMware服务端        

exsi         vmware vsphere 安装在裸金属服务器上

客户端连接,现企业使用网页端连接,vmware vsphere

1.4.4 KVM和EXSI详解

(1)KVM linux内核来完成的功能和性能。

首先通过kvm+内核调用控制器,然后通过控制器调用内核软件层,然后内核软件层调用QEMU的I/O控制器,QEMU使用二进制调用CPU内存,生成vm1、vm2等虚拟机。

(2)企业用得多,除了云之外。

在裸金属服务器安装EXSI系统,使用网页连接,系统层使用调度器调度配置网络。监控管理、CPU、内存等。

二、Docker

2.1 概念

Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。

打成一个镜像包。

Docker的设计宗旨:Build,Ship and Run Any App,Anywhere,
即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。

 2.2 优点

(1)灵活:即使是最复杂的应用也可以集装箱化。

(2)轻量级:容器利用并共享主机内核。

(3)可互换:可以即时部署更新和升级。

(4)便携式:可以在本地构建,部署到云,并在任何地方运行。

(5)可扩展:可以增加并自动分发容器副本。

(6)可堆叠:可以垂直和即时堆叠服务。

注意:容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。

2.3 Docker与虚拟机的区别

2.4 容器技术

docker

podman 与docker相似OCI

K8s

Container        核心组件之一

LXC        linux容器化技术

crio:轻量级,专门用于 k8s

apche mesos   容器编排平台

2.5 容器在内核中支持2种重要技术

docker本质就是宿主机的一个进程,docker是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g)。

2.6 namespace的六项隔离

 2.7 docker核心概念

(1)镜像

Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向 Docker 容器引擎的只读模板。通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。
Docker镜像也是一个压缩包,只是这个压缩包不只是可执行文件,环境部署脚本,它还包含了完整的操作系统。因为大部分的镜像都是基于某个操作系统来构建,所以很轻松的就可以构建本地和远端一样的环境,这也是Docker镜像的精髓。

(2)容器
Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性。可以把容器看做是一个简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。镜像 nginx  (run) 起来之后的一个实例,可以把容器看做时一个简易版的linux环境容器 就是集装箱(logo上的集装箱)

(3)仓库
Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private)。当下次要在另外一台机器上使用这个镜像时,只需从仓库获取。

注意:Docker 的镜像、容器、日志等内容全部都默认存储在 /var/lib/docker 

2.8 安装 Docker

2.8.1 关闭防火墙和核心防护

systemctl stop firewalld.service
setenforce 0

2.8.2 安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2 

2.8.3 设置阿里云镜像源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

2.8.4 安装 Docker-CE并设置为开机自动启动

yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker.service
systemctl enable docker.service 

2.8.5 查看 docker 版本信息

docker version

2.8.6 docker 信息查看

docker info 

2.8.7 搜索镜像

docker search 关键字
如:docker search nginx

2.8.8 获取镜像

docker pull 仓库名称[:标签]
如:docker pull nginx

2.8.9 镜像加速下载

(1)浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置

(2)配置

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://rs4kf2fz.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

2.8.10 查看下载的镜像文件信息

cat /var/lib/docker/image/overlay2/repositories.json

2.8.11 查看下载到本地的所有镜像

docker images

2.8.12 获取镜像详细信息

docker inspect 镜像ID号

2.8.13 为本地的镜像添加新的标签

docker tag 名称:[标签] 新名称:[新标签]

2.8.14 删除镜像

docker rmi 仓库名称:标签
或
docker rmi 镜像ID号	

 

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

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

相关文章

RabbitMQ消息是如何分发的,消息是怎么路由的, RabbitMQ中的交换机类型有哪些

目录 面试官:讲一下RabbitMQ消息如何分发和消息怎么路由的?消息分发消息路由RabbitMQ中的交换机类型示例Spring Boot代码示例1. 直接路由(Direct Exchange)2. 扇出路由(Fanout Exchange)3. 主题路由(Topic Exchange)4. 头路由(Headers Exchange)该文章专注于面试,面…

【GitHub】github学生认证,使用copilot教程

github学生认证并使用copilot教程 写在最前面一.注册github账号1.1、注册1.2、完善你的profile 二、Github 学生认证 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你的陪伴与支持 ~ &#x1f680; 欢迎一起踏上探险之旅&a…

详细分析MySQL中的distinct函数(附Demo)

目录 前言1. 基本知识2. 基础Demo3. 进阶Demo 前言 该函数主要用于去重&#xff0c;对于细节知识&#xff0c;此文详细补充说明 1. 基本知识 DISTINCT 是一种用于查询结果中去除重复行的关键字 在查询数据库时&#xff0c;可能会得到重复的结果行&#xff0c;但有时只需要这…

【力扣】18. 四数之和

18. 四数之和 题目描述 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff09;…

[c++]菱形继承解析

菱形继承 大概示意图&#xff1a; 菱形继承不一定只是标准的菱形&#xff0c;只要形似菱形的都可以叫菱形继承。 (以下说明都是默认公有继承&#xff0c;public和protected成员情况下) 菱形继承会造成数据的冗余和二义性&#xff1a; 冗余&#xff1a;一个Assitant对象里面有…

Java(今日总结

今天测试了一下set和map package a0427.Classes;import java.util.HashSet; import java.util.Set;public class shuzu {public static void main(String[] args) {Set<String> set new HashSet(10);set.add("aaa");set.add("bbb");set.add("c…

详细分析PyInstaller打包python为exe执行文件(附Demo)

目录 前言1. 基本知识2. Demo 前言 需要将python文件打包成exe文件&#xff0c;变成rpa自动化形式 1. 基本知识 PyInstaller是一个用于将Python应用程序打包成独立可执行文件的工具 可以将Python脚本打包成Windows、Linux和Mac OS X上的可执行文件&#xff0c;这个作用可以将…

ThingsBoard远程RPC调用设备

使用 RPC 功能 客户端 RPC 从设备发送客户端 RPC 平台处理客户端RPC 服务器端 RPC 服务器端RPC结构 发送服务器端RPC 使用 RPC 功能 ThingsBoard 允许您从服务器端应用程序向设备发送远程过程调用 (RPC)&#xff0c;反之亦然。基本上&#xff0c;此功能允许您向设备发送命…

华为FusionCompute简介

华为FusionCompute 8&#xff08;通常简称为FC8&#xff09;是华为推出的一款云操作系统软件&#xff0c;其主要功能和作用包括&#xff1a; 1. **硬件资源虚拟化**&#xff1a;FusionCompute通过虚拟化技术&#xff0c;将物理服务器的计算、存储和网络资源抽象化&#xff0c;…

Python 数组控件的使用

当一个UI窗口界面内有多个相同类型的控件&#xff0c;且这多个控件的功能都类似时&#xff0c;使用数组控件是一个非常不错的选择&#xff0c;可以大大减少代码的编写 且 代码易读性强&#xff0c;可惜的是Python好象是没有数组控件这个东东。 我们来看看以下一个界面&#xff…

Linux:服务器硬件及RAID配置

文章目录 Linux&#xff1a;服务器硬件及RAID配置服务器服务器是什么服务器的结构 RAID硬RAID与软RAID对比RAID级别介绍RAID 0RAID 1RAID 5RAID 6RAID 10 RAID级别对比 配置RAID硬RAID软RAID Linux&#xff1a;服务器硬件及RAID配置 服务器 服务器是什么 服务器的英文名称为…

Linux进程概念(六):进程控制

目录 进程创建 fork函数 进程终止 终止时干了什么 进程终止的三种情况 main函数的返回值 打印默认退出码 自定义退出码 总结 进程终止 exit函数 _exit函数 exit和_exit的区别 进程等待 什么是进程等待 为什么要有进程等待 wait函数 waitpid函数 阻塞等待与…

Redis技术总结

1.基本数据结构,底层原理,以及应用 String 底层使用了SDS简单动态字符,string一共三种编码方式,int,embstr,raw int主要存储long型整数 string有两个数据结构redisObject和SDS embstr和raw底层sds,主要区别是embstr的redisobject和sds连续存储在一起,而redisobject和s…

环形链表——java

给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;…

Axure实现tab页面切换功能

1. 实现效果 2. 实现原理 创建两个标签&#xff0c;并实现点击时选中状态点击时&#xff0c;设置面板状态 3. 实现步骤 3.1 实现可切换的标签 在页面上拖拽两个矩形作为两个tab标签&#xff0c;并命名 tab1 和 tab2 设置每个矩形的边框显示&#xff0c;只显示下边框即可 …

C#反射应用

1.根据类名名称生成类实例 CreateInstance后面的参数部分一定要和所构造的类参数数量对应&#xff0c;即使设置参数默认值&#xff0c;也不可省略。 2.只知道类名&#xff0c;需要将该类作为参数调用泛型接口。 3.只知道类名&#xff0c;需要将该类的数组作为参数调用泛型接口…

LeetCode刷题之删除重复元素

文章目录 1.删除数组中的重复元素1.1 描述1.2 分析1.3 解答 2. 删除有序数组中的重复元素2.1 描述2.2 分析2.3 解答 1.删除数组中的重复元素 题26、删除数组中的重复元素 1.1 描述 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0…

顺序查找和折半查找

顺序查找&#xff1a; 对于无序的情况&#xff1a; 什么是顺序查找&#xff1a;顺序查找的实现方式&#xff08;存储&#xff09;&#xff0c;是含有两种的方式进行存储的&#xff0c;一种是顺序表的形式进行存储&#xff0c;还有一种是使用链表的形式进行存储的。采用顺序查…

架构师系列- 消息中间件(15)-kafka业务实战

7.1 顺序性场景 7.1.1 场景概述 假设我们要传输一批订单到另一个系统&#xff0c;那么订单对应状态的演变是有顺序性要求的。 已下单 → 已支付 → 已确认 不允许错乱&#xff01; 7.1.2 顺序级别 1&#xff09;全局有序&#xff1a; 串行化。每条经过kafka的消息必须严格…

Swift中TableView的下拉刷新和上拉加载

在Swift中&#xff0c;可以使用UIRefreshControl来实现TableView的下拉刷新。首先&#xff0c;需要在ViewDidLoad方法中创建一个UIRefreshControl的实例&#xff0c;并添加到TableView的subview中。然后&#xff0c;设置refreshControl的action为TableView的下拉刷新函数&#…