什么是 Docker?它能用来做什么?

news/2024/7/4 20:01:59

文章目录

    • 什么是云计算?
    • 什么是 Docker?
    • 虚拟化技术演变
    • 特点
    • 架构
      • 镜像(Image)
      • 仓库(Registry )
      • 容器(Container)
    • 应用场景

什么是云计算?

云计算是一种资源的服务模式,该模式可以实现随时随地、便捷按需地从可配置计算资源共享池中获取所需的资源(如网络、服务器、存储、应用及服务),资源能够快速供应并释放,大大减少了资源管理工作开销,用户甚至可以再也不用理会那些令人头痛的传统服务供应商了。

经典的云计算架构包括以下三层服务:

云平台经典架构

  • IaaS(Infrastructure as a Service,基础设施即服务):面向基础设施运维人员,提供计算、存储、网络及其他基础资源,云平台使用者可以在上面部署和运行包括操作系统和应用程序在内的任意软件,无需再为基础设施的管理而分心。
  • PaaS(Platform as a Service,平台即服务):面向应用开发人员,提供支撑应用运行所需的软件运行时环境、相关工具与服务,如数据库服务、日志服务、监控服务等,让应用开发者可以专注于核心业务的开发。
  • SaaS(Software as a Service,软件即服务):面向一般用户,提供了一套完整可用的软件系统,让一般用户无需关注技术细节,只需通过浏览器、应用客户端等方式就能使用部署在云上的应用服务。


什么是 Docker?

Docker 是一个能够把开发的应用程序自动部署到容器的开源引擎。由 Docker 公司(前 dotCloud)的团队编写,基于 Apache 2.0 开源授权协议发行。

Docker 在虚拟化的容器执行环境中增加了一个应用程序部署引擎。该引擎的目标就是提供一个轻量、快速的环境,能够运行开发者的程序,并方便高效地将程序从开发者的笔记本部署到测试环境,然后再部署到生产环境。

Docker 极其简洁,它所需的全部环境只是一台仅仅安装了兼容版本的 Linux 内核和二进制文件最小限的宿主机。


虚拟化技术演变

虚拟化技术演变路径可分为三个时代:

  1. 物理机时代,多个应用程序可能跑在一台物理机器上。

  2. 虚拟机时代,一台物理机器启动多个虚拟机实例,一个虚拟机跑多个应用程序。

  3. 容器化时代,一台物理机上启动多个容器实例,一个容器跑多个应用程序。

虚拟机通过中间层 Hypervisor 将一台或多台独立的机器虚拟运行于物理硬件之上,而容器则是直接运行在操作系统内核之上的用户空间,因此它们存在很大的差异:

特性Docker虚拟机
启动速度秒级分钟级
交付/部署开发、测试、生产环境一致-
性能近似物理机性能损耗大
镜像存储MB 级GB 级
集群规模上万上百
隔离级别进程级操作系统级
隔离策略CGroupsHypervisor
高可用策略弹性、负载、动态备份、容灾、迁移


特点

  • 提供一个简单、轻量的建模方式:Docker 上手非常快,用户只需要几分钟,就可以把自己的程序 Dockerize。Docker 依赖于写时复制(copy-on-write)模型,使修改应用程序也非常迅速。大多数 Docker 容器只需不到 1 秒钟即可启动。由于去除了管理程序的开销,Docker 容器拥有很高的性能,同时同一台宿主机中也可以运行更多的容器,使用户可以尽可能充分地利用系统资源。
  • 职责的逻辑分离:开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如何管理容器。Docker 设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署的生产环境的一致性。
  • 快速、高效的开发生命周期:缩短代码从开发、测试到部署、上线运行的周期,让应用程序具备可移植性,易于构建,并易于协作。
  • 鼓励使用面向服务的架构:Docker 推荐单个容器只运行一个应用程序或进程,这样就形成了一个分布式的应用程序模型,在这种模型下,应用程序或服务都可以表示为一系列内部互联的容器,从而使分布式部署应用程序,扩展或调试应用程序都变得非常简单,同时也提高了程序的内省性。


架构

Docker 使用客户端/服务器(C/S)架构,如下图所示:
在这里插入图片描述

Docker 架构

客户端只需向 Docker 服务器或守护进程(daemon)发出请求,服务器或守护进程将完成所有工作并返回结果。Docker 守护进程有时也称为 Docker 引擎。Docker 提供了一个命令行工具 docker 以及一整套RESTful API 来与守护进程交互。用户可以在同一台宿主机上运行 Docker 守护进程和客户端,也可以从本地的 Docker 客户端连接到运行在另一台宿主机上的远程 Docker 守护进程。


镜像(Image)

镜像是用于创建 Docker 容器的模板,它就像是容器的源代码一样,包含了一系列的构建指令。

镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。


仓库(Registry )

Docker 用 Registry 来保存用户构建的镜像。Registry 分为公共和私有两种。Docker 公司运营的公共 Registry 叫作 Docker Hub。用户可以在 Docker Hub 注册账号,分享并保存自己的镜像。


容器(Container)

镜像和容器的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。我们可以认为,镜像是 Docker 生命周期中的构建或打包阶段,而容器则是启动或执行阶段。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间(namespaces)。因此容器可以拥有自己的 root 文件系统、网络配置、进程空间,甚至用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。


应用场景

  • 加速本地开发和构建流程,使其更加高效、更加轻量化。本地开发人员可以构建、运行并分享 Docker 容器。容器可以在开发环境中构建,然后轻松地提交到测试环境中,并最终进入生产环境。
  • 能够让独立服务或应用程序在不同的环境中,得到相同的运行结果。这一点在面向服务的架构和重度依赖微型服务的部署中尤其实用。
  • 用 Docker 创建隔离的环境来进行测试。
  • Docker 可以让开发者先在本机上构建一个复杂的程序或架构来进行测试,而不是一开始就在生产环境部署、测试。
  • 构建一个多用户的平台即服务(PaaS)基础设施。
  • 为开发、测试提供一个轻量级的独立沙盒环境,
  • 提供软件即服务(SaaS)应用程序。
  • 高性能、超大规模的宿主机部署。

http://lihuaxi.xjx100.cn/news/1089847.html

相关文章

linux编写脚本之快速入门

前言 在进行Linux测试时编写脚本是必不可少的。最近经常使用Linux,感觉太频繁地敲击键盘有些累了,于是想到了Shell脚本。可以把太多的命令写成一个脚本,这样每次执行一遍 shell文件,就可以省去了敲击键盘的时间。于是在网上搜了一…

云计算(Cloud Computing)

一、从技术概念理解云计算 早期的云计算就是虚拟化主机上的分布式计算,现阶段的云计算,已经不单单是一种分布式计算,而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗杂和虚拟化等计算机技术混合演进并跃升的结果。云计算…

Linux CentOS本地搭建Web站点,并实现公网访问

文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道,指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 转载自cpolar文章:Linux CentOS本地搭建…

SpringCloud 微服务系列——【Gateway、Config组件使用】

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

【微机原理】8088/8086CPU引脚

8086是16位微处理器数据线有16根;8088是准16位微处理器,它对外的数据线是8位的。他们的地址线都是20位的,8088/8086均为40条引线、双列直插式封装 地址线决定了访问主存的容量,数据线决定了CPU的运输能力 为了能在有限的40条引线范…

PAT A1022 Digital Library

1022 Digital Library 分数 30 作者 CHEN, Yue 单位 浙江大学 A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an unique 7-digit nu…

关于海康工业相机连接电脑时出现链接速度低于1Ggps解决办法

一、电脑端网卡配置 打开电脑设置——网络和Internet——高级网络设置——更改适配器选项——双击以太网 网络和Internet点击属性、打开配置 点击配置 点击高级 巨型帧9KB 连接速度和双工模式_1.0Gbps全双工 电源管理取消勾选 二、MVS相机软件参数设置 将相机连接至电脑 打开…

异构无线传感器网络路由算法研究(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 ​无线传感器网络(Wireless Sensor Networks, WSN)是一种新型的融合传感器、计算机、通信等多学科的信息获取和处理技术的网络,…