dockers容器基础及基础命令(一)

本文介绍了Docker的基础知识,包括KVM虚拟化的概念、Docker与虚拟机的区别、Docker的使用场景及其核心组件。详细阐述了Docker的部署、镜像和容器的管理,以及私有仓库的操作。总结了Docker的镜像、容器、仓库三大组件及其重要操作,强调了Docker的资源隔离和管理优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

一、KVM虚拟化的简单概论

1、虚拟化

2、虚拟化类型

3、虚拟化特性

4、KVM简介

二、docker容器简介

1、docker概念

2、Docker和虚拟机的区别

3、Docker的使用场景

4、Docker 引擎(Docker Engine )

5、Docker三大核心组件

6、docker的架构(docker architecture)

7、docker底层原理

三、部署20版Docker

1、基础环境配置、以及安装docker-ce社区版

2、设置镜像加速

3、网络优化

4、docker配置文件一些配置

四、Docker镜像相关操作

1、查找指定镜像

2、下载镜像

3、查看镜像信息

4、添加镜像新标签(打标签)

5、删除镜像

6、将镜像保存到本地

7、载入镜像

8、上传镜像

 五、容器的相关操作命令

1、查询docker镜像列表及版本信息

2、显示 docker 的系统级信息

3、查询容器、删除容器

4、创建、启动、停止运行容器

5、运行容器

6、进入、退出容器

7、容器导出、导入

8、查询当前容器资源消耗信息

六、私有仓库的操作

1、下载并创建私有仓库

2、挂载容器,并更改标签

3、上传镜像到私有仓库

4、获取私有仓库列表

5、从私有仓库下载镜像

总结


前言

        以1inux而言,linux操作 系统会有一个主进程pid=1派生出其他进程来控制不同服务,例如:

pid=2 --> python 、pid=3-->java 、pid4-->php ,三个服务可能会相互影响,此时使用者期望将这

三个不同的服务,跑在不同的运行时环境中实现相互不影响,同时不会增加服务器成本,以此为基

础,思考能否将这三种服务分别封装起来呢?这时就有了KVM虛拟化技术,实现了一个操作系统

模拟多个操作系统/不同的运行时环境。随着技术发展,人们发现虚拟化技术开销较大,这时就延

伸出了容器技术,虚拟化层的抽象层(用户层)剥离,使用docker engine来替代(来宾操作系统去

除),只要通过引擎就可以直接连接到宿主机操作系统中,极大减小了开销。

一、KVM虚拟化的简单概论

1、虚拟化

        虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机(对计算机物理资源的抽

象,实现资源的模拟、隔离和共享)。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机

可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高

计算机的工作效率。虚拟化是一种资源管理技术,打破实体结构的不可分割的障碍,可以对数据中

心的所有资源进行虚拟化和管理,可以实现服务虚拟化、存储虚拟化、网络虚拟化和桌面虚拟化。

        在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的、旧的硬

件产能过低的重组、重用,透明化底层物理硬件,从而最大化的利用物理硬件,对资源充分利用。

(主要解决的两个问题:资源充分利用;以及缩短交付时间。)

        虚拟化技术就是通过软件/应用程序的方式,来实现物理硬件的功能。

2、虚拟化类型

①全虚:将物理硬件资源全部通过软件的方式抽象化,最后进行调用

使用的方法:使用hypervisor(VMM)软件,其原理是在底层硬件和服务器之间建立一个抽象层,

而基于核心的虚拟机是面向Linux系统的开源产品hypervisor(VMM)可以捕捉CPU的指令。

②半虚:需要修改操作系统

③直通:直接使用物理硬件资源(需要设备支持,还不完善)

3、虚拟化特性

①优势:

集中化管理(远程管理、维护);

提高硬件利用率(物理资源利用率低,例如峰值,虚拟化解决了“空闲”容量);

动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性);

高可靠(可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境)。

②劣势:

前期高额费用(初期的硬件支持);

降低硬件利用率(特定场景,例:极度吃资源的应用不一定适合虚拟化);

更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损

坏);

实施配置复杂、管理复杂(管理人员运维、排障困难);

一定的限制性(虚拟化技术涉及各种限制,必须与支持/兼容虚拟化的服务器、应用程序以及供应

商结合使用);

安全性(虚拟化技术自身的安全隐患)。

4、KVM简介

        KVM (Kernel-based vritual Machine)——基于内核的虚拟机。KVM是基于虚拟化扩展的X86

硬件的开源Linux原生的全虚拟化方案(要求cpu支持Intel-vT-x或AMD-V)。KVM内嵌于内核模块

中,模拟处理器和内存以支持虚拟机运行,虚拟机被实现为常规的Linux进程,由标准Linux调度程

序进行调度;虚拟机的每个虚拟CPU被实现为一个常规的Linux进程。这使得KVM能够使用Linux内

核的已有功能但KVM本身不执行任何模拟。

        需要客户空间程序(虚拟机)通过/dev/kvm (此虚拟设备需要开起硬件辅助虚拟化才能看到)接口

设置一个客户机虚拟服务器的地址空间,并且由Qemu模拟I/O (ioctl)进行调度资源和维护管理。

Libvirt:KVM的管理工具,除了可以管理KM这类VMM,还可以管理xen,VirtualBox,甚至

Openstack底层

Libvirt包含3个组件:后台daemon程序libvirtd、 API库、命令行工具virsh

①、KVM工作流程

 

【1】用户模式的Qemu利用接口libkvm通过ioctl系统调用进入内核模式。

【2】KVM驱动为虚拟机创建 虚拟CPU和虚拟内存。

【3】然后执行VMLAU.NCH指令进入客户模式,装载Guest OS并运行。

【4】Guest OS运行过程中如果发生异常,则暂停Guest OS的运行并保存当前状态同时退出到内

核模式来处理这些异常。

【5】内核模式处理这些异常时如果不需要I/O则处理完成后重新进入客户模式。如果需要I/O则进

入到用户模式,则由Qemu来处理I/O,处理完成后进入内核模式,再进入客户模式。

②、KVM各核心组件功能

【1】QEMU:负责抽象化I/O资源,客户机系统,包括CPU (vCPU) 、内存驱动(Console、 网卡、

I/O设备驱动等),被KVM置于一种受限制的CPU 模式下运行。功能:控制I/O虚拟化,调用硬件资

源。

【2】KVM:内置在内核中,负责对实际物力资源进行抽象/逻辑分割,模拟处理器和内存以支持虚

拟机运行。功能:为虚拟机提供CPU、内存(硬件资源)的虚拟化。

③、KVM虚拟化架构(三种模式)

◆客户模式(guestOs) :VM中的OS为Guestos

客户机在操作系统中运行的模式,客户机分为内核模式和用户模式,作用如下:

◆用户模式:为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu工作在此模式下(Qemu的主要功能)

◆linux内核模式:模拟CPU、 内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下

④、KVM原理

KVM驱动提供处理器、内存的虚拟化,以及客户机I/O的拦截,guest的I/O被拦截后,交由Qemu处

理;Qemu利用接口libkvm调用(ioctl) 虚拟机设备接口/dev/kvm来分配资源、管理、维护虚拟机。

客户机-----用户层/虚拟化层(QEMU)------内核(kvm)之间是通过API接口调用的。

二、docker容器简介

Docker是一种轻量级的”虚拟机”,在linux容器里运行应用的开源工具。

1、docker概念

        docker是一个用于开发,交付和运行应用程序的开放平台。docker是由容器引擎,把linux的

cgroup、namespaces等容器底层技术进行完美的封装、并抽象为用户提供创建和管理容器的便捷

界面(命令行Cli、api等) C/s。docker使应用程序和基础架构分开,从而可以快捷交付软件;还是一

个开源的应用容器引擎,让开发者可以打包大门的应用以及依赖包到一个可移植的镜像中,然后发

布到任何流行的linux或者windows机器上;也可以实现虚拟化,容器是完全使用沙箱机制,相互之

间不会任何接口。(沙箱,在计算机安全领域,沙箱是一种程序的隔离运行机制)

①、云计算三层架构及说明如下。而Docker就是PAAS中的技术。

②、使用docker的作用

◆docker引擎统一了基础设施环境docker环境:docker环境------》image------>封装一个简易的操作

系统(3.0+G)。

◆docker引擎统一了程序打包(装箱)方式-docker镜像:docker镜像一》 images

◆docker引擎统一了程序部署(运行)方式-docker容器:docker容器一 》基于镜像——》运行为容器

(可运行的环境)实现了一次构建、多次、多处使用。

镜像———》 封装的某一个时刻的服务/应用状态

容器———》应用跑起来的状态(正常提供服务的状态-运行时)

2、Docker和虚拟机的区别

不同点

container

vm

启动速度

快速(秒级别)

慢(分钟级)

运维性能

接近原生(使用共享内核)

50%左右损失

磁盘占用

小(内核大小MB)

大(整个系统的大小GB)

数量

成百上千

一般十几台

隔离性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值