虚拟化及Docker基础

一、虚拟化

[1.1 云端](#1.1 云端)

[1.2 云计算服务模式分层](#1.2 云计算服务模式分层)

[1.3 虚拟化架构](#1.3 虚拟化架构)

[1.3.1 寄居架构](#1.3.1 寄居架构)

[1.3.2 原生架构](#1.3.2 原生架构)

[1.4 虚拟化产品](#1.4 虚拟化产品)

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

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

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

[1.4.4 KVM和EXSI详解](#1.4.4 KVM和EXSI详解)

二、Docker

[2.1 概念](#2.1 概念)

[2.2 优点](#2.2 优点)

[2.3 Docker与虚拟机的区别](#2.3 Docker与虚拟机的区别)

[2.4 容器技术](#2.4 容器技术)

[2.5 容器在内核中支持2种重要技术](#2.5 容器在内核中支持2种重要技术)

[2.6 namespace的六项隔离](#2.6 namespace的六项隔离)

[​2.7 docker核心概念](#2.7 docker核心概念)

[2.8 安装 Docker](#2.8 安装 Docker)

[2.8.1 关闭防火墙和核心防护](#2.8.1 关闭防火墙和核心防护)

[2.8.2 安装依赖包](#2.8.2 安装依赖包)

[2.8.3 设置阿里云镜像源](#2.8.3 设置阿里云镜像源)

[2.8.4 安装 Docker-CE并设置为开机自动启动](#2.8.4 安装 Docker-CE并设置为开机自动启动)

[2.8.5 查看 docker 版本信息](#2.8.5 查看 docker 版本信息)

[2.8.6 docker 信息查看](#2.8.6 docker 信息查看)

[2.8.7 搜索镜像](#2.8.7 搜索镜像)

[2.8.8 获取镜像](#2.8.8 获取镜像)

[2.8.9 镜像加速下载](#2.8.9 镜像加速下载)

[2.8.10 查看下载的镜像文件信息](#2.8.10 查看下载的镜像文件信息)

[2.8.11 查看下载到本地的所有镜像](#2.8.11 查看下载到本地的所有镜像)

[2.8.12 获取镜像详细信息](#2.8.12 获取镜像详细信息)

[2.8.13 为本地的镜像添加新的标签](#2.8.13 为本地的镜像添加新的标签)

[2.8.14 删除镜像](#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号	
相关推荐
A ?Charis1 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
城南vision2 小时前
Docker学习—Docker核心概念总结
java·学习·docker
wclass-zhengge2 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱2 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
北漂IT民工_程序员_ZG2 小时前
k8s集群安装(minikube)
云原生·容器·kubernetes
力姆泰克3 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
BPM_宏天低代码3 小时前
低代码 BPA:简化业务流程自动化的新趋势
运维·低代码·自动化
sun0077004 小时前
拷贝 cp -rdp 和 cp -a
linux·运维·服务器
wowocpp4 小时前
ubuntu 22.04 server 安装 anaconda3
linux·运维·ubuntu
tingting01194 小时前
Linux 普通用户禁用sudo su - 命令
linux·运维·服务器