1 虚拟化技术

因为 Docker 的容器化技术是虚拟化的一种体现形式,因此 我们要学习容器化技术之前,需要先来了解一下什么是虚拟化技术:

1.1 什么是虚拟化技术
  • 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
  • 虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件对资源充分利用
1.2 虚拟化常见架构
1.2.1 全虚拟化架构
  • 虚拟机的监视器(hypervisor)是类似于用户的应用程序运行在主机的 OS 之上,如 VMware 的 workstation,这种虚拟化产品提供了虚拟的硬件
1.2.2 OS 层虚拟化架构

1.2.3 硬件层虚拟化

  • 硬件层的虚拟化具有高性能和隔离性,因为 hypervisor 直接在硬件上运行,有利于控制 VM 的 OS 访问硬件资源,使用这种解决方案的产品 有 VMware ESXi 和 Xen server Hypervisor 是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚 拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(Virtual Machine Monitor,VMM)。 Hypervisor 是所有虚拟化技术的核心。当服务器启动并执行 Hypervisor 时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加 载所有虚拟机的客户操作系统。 宿主机 Hypervisor 是所有虚拟化技术的核心,软硬件架构和管理更高效、更灵活,硬件的效能能够更好地发挥出来。常见的产品有:VMware、KVM、 Xen 等等。Openstack

2 Docker 简介

2.1 什么是 Docker

  • 在计算机的世界中,容器拥有一段漫长且传奇的历史。容器与管理程序虚拟化(hypervisor virtualization,HV)有所不同,管理程序虚拟化通 过中间层将一台或者多台独立的机器虚拟运行与物理硬件之上,而容器则是直接运行在操作系统内核之上的用户空间。因此,容器虚拟化也被称 为“操作系统级虚拟化”,容器技术可以让多个独立的用户空间运行在同一台宿主机上。 由于“客居”于操作系统,容器只能运行与底层宿主机相同或者相似的操作系统,这看起来并不是非常灵活。例如:可以在 Ubuntu 服务中运 行 Redhat Enterprise Linux,但无法再 Ubuntu 服务器上运行 Microsoft Windows。 相对于彻底隔离的管理程序虚拟化,容器被认为是不安全的。而反对这一观点的人则认为,由于虚拟容器所虚拟的是一个完整的操作系统, 这无疑增大了攻击范围,而且还要考虑管理程序层潜在的暴露风险。 尽管有诸多局限性,容器还是被广泛部署于各种各样的应用场合。在超大规模的多租户服务部署、轻量级沙盒以及对安全要求不太高的隔离 环境中,容器技术非常流行。最常见的一个例子就是“权限隔离监牢”(chroot jail),它创建一个隔离的目录环境来运行进程。如果权限隔离监牢 正在运行的进程被入侵者攻破,入侵者便会发现自己“身陷囹圄”,因为权限不足被困在容器所创建的目录中,无法对宿主机进一步破坏。 最新的容器技术引入了 OpenVZ、Solaris Zones 以及 Linux 容器(LXC)。使用这些新技术,容器不在仅仅是一个单纯的运行环境。在自己的 权限类内,容器更像是一个完整的宿主机。对 Docker 来说,它得益于现代 Linux 特性,如控件组(control group)、命名空间(namespace)技术, 容器和宿主机之间的隔离更加彻底,容器有独立的网络和存储栈,还拥有自己的资源管理能力,使得同一台宿主机中的多个容器可以友好的共存。 容器被认为是精益技术,因为容器需要的开销有限。和传统虚拟化以及半虚拟化相比,容器不需要模拟层(emulation layer)和管理层(hypervisor layer),而是使用操作系统的系统调用接口。这降低了运行单个容器所需的开销,也使得宿主机中可以运行更多的容器。 尽管有着光辉的历史,容器仍未得到广泛的认可。一个很重要的原因就是容器技术的复杂性:容器本身就比较复杂,不易安装,管理和自动 化也很困难。而 Docker 就是为了改变这一切而生的
2.2 虚拟化技术和 Docker 的区别
2.2.1 本质上区别

2.2.2 使用上的区别

3 Docker 组件

3.1 Docker 客户端和服务器

  • Docker 是一个客户端-服务器(C/S)架构程序。Docker 客户端只需要向 Docker 服务器或者守护进程发出请求,服务器或者守护进程将完成 所有工作并返回结果。Docker 提供了一个命令行工具 Docker 以及一整套RESTful API。你可以在同一台宿主机上运行 Docker 守护进程和客户端, 也可以从本地的 Docker 客户端连接到运行在另一台宿主机上的远程 Docker 守护进程
3.2 Docker 镜像
  • 镜像是构建 Docker 的基石, 其中包括了容器的文件系统结构与内容,它与 docker 的配置文件共同组成了 docker
    容器的静态文件系统环境. 用 户基于镜像来运行自己的容器
3.3 注册中心
  • 我们从何处去获得镜像?如果我们是第一次通过某个镜像去启动容器,首先宿主机回去/var/lib/docker 目录下去找,如果没有找到,则会去 registry 中去下载镜像并且存放于虚拟机,然后完成启动。 registry 可以想象为一个镜像的仓库,默认的 registry 是 docker 官方提供的 registry 服务,名为 Docker Hub。当然,你也可以构建自己的镜像仓库。
3.4 注册中心

容器就是镜像的运行实例。 用户可以通过命令行或是 API 启动、停止、移动或删除容器。可以这么认为,对于应用软件,镜像是软件生命周期的构建和打包阶段,而容器 则是启动和运行阶段

Docker 容器化技术(介绍)相关推荐

  1. Docker容器化技术教程,24小时快速入门

    Docker介绍 Docker简介和安装 Docker是什么 为什么使用Docker 和普通虚拟机的对比 打包.分发.部署 小结 Docker部署的优势 Docker通常用来做什么 重要概念:镜像.容 ...

  2. 万字长文带你探究 Docker 容器化技术背后的黑科技

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 容器的优势 传统模式的部署,直接将多个应用运行在物理服务器上,如果其中一个应用占用了大部分资源,可能会导致其他应用 ...

  3. Docker容器化技术

    一.虚拟机与容器的比较 在容器化技术出来之前,使用的是虚拟机技术,虚拟机和Docker容器技术都是一种虚拟化技术 虚拟机包含的是整个操作系统的原生镜像,非常的庞大,而docker的镜像只包含最核心的环 ...

  4. Docker容器化技术入门

    Docker入门 本人环境搭建在内网树莓派4b上,使用的linux发行版为树莓派Ubuntu 21.04 server版本 一些镜像需要根据自己的处理器架构去修改!!! 安装Docker sudo a ...

  5. docker建多个mysql_《容器化系列二》利用Docker容器化技术安装多个mysql

    前提说明 安装的Linux系统版本为Centos7.x 一.安装docker并测试 1.安装yum相关工具包 ///安装yum相关工具包 yum install -y yum-utils device ...

  6. Docker容器化技术笔记

    学习目标 掌握Docker基础知识,能够理解Docker镜像与容器概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx等软件的常用应用的安装 掌握dock ...

  7. 深度解析容器化技术在广发证券交易系统的应用

    作者简介:杨涛,广发证券交易云技术研发团队负责人,资深架构师,在证券行业有超过9年的工作经验.目前致力于广发证券OpenTrading证券交易云核心技术研发. 责编:魏伟,本文转载自<程序员&g ...

  8. 深度解析容器化技术在广发证券交易系统的应用【转】

    原文链接:http://geek.csdn.net/news/detail/94850 本文是docker落地比较好的实践案例,文中很多地方多可以学习一下,以下是摘录: 为什么要容器化 对传统的垂直行 ...

  9. Docker 容器化部署

    文章目录 思维导图 概念 安装(基于 centos7) 结构 Docker 命令 进程(daemon)相关命令 镜像(image)相关命令 容器(container))相关命令 数据卷 数据卷容器 d ...

最新文章

  1. 51nod 最长公共子序列测试 【LCS+回溯】
  2. 面试官:说说微信和淘宝扫码登录背后的实现原理?
  3. 【鸿蒙 HarmonyOS】创建 Java 语言 HarmonyOS 手机应用 ( 首次进入 DevEco Studio 配置环境 | 创建 Java 手机工程 | 鸿蒙工程代码目录简介 )
  4. fasttext的基本使用 java 、python为例子
  5. profinet远程IO总线模块IP67防护等级的优势
  6. linux下好看的中文字体,推荐一款 Linux 上比较漂亮的字体(转)
  7. Hamilton哈密顿最短路径(二进制状态压缩)
  8. 双人五子棋游戏用C++实现
  9. C# 定时任务 调度框架 WebWork (Quartz.NET) Web版的Windows服务
  10. 数据库的列类型与字段属性
  11. [ABC283D] 题解
  12. 如何改掉自己的坏习惯
  13. 数据分析师认证考试形式发布,如何掌握考试重难点?
  14. spring cloud是什么时候流行的_老司机给我们解读 Spring Boot 最流行的 16 条实践 - 码农突围
  15. linux安卓导航软件下载,五款安卓导航(地图)软件耗电量评测
  16. 线程池使用的10个坑(二)
  17. PMP学员:项目管理的重要性
  18. Java Calendar用法
  19. 操作系统实习-进程调度算法(C语言)
  20. 0day安全:软件漏洞分析技术——系统内核漏洞

热门文章

  1. 了解keep-alive
  2. ebuy遇到的问题以及解决方法
  3. 09. 路由器单臂路由配置
  4. android手电筒
  5. 丢手帕问题 java_java基于双向环形链表解决丢手帕问题的方法示例
  6. Linux Crontab执行hadoop命令脚本失败
  7. 嵌入式中SIM卡接口电路设计
  8. 浪潮存储与虚拟服务器连接失败,浪潮-异构虚拟化存储研究(示例代码)
  9. yolov5 6.1官方模板TensorRT加速保姆级图文教程
  10. 青少年编程教育平台后台—登录注册(代码编写)