前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文了解Docker与容器

一文了解Docker与容器

作者头像
海盗船长
发布2021-12-07 16:09:03
3380
发布2021-12-07 16:09:03
举报
文章被收录于专栏:基础知识文章基础知识文章

1.什么是Docker?

简单地讲,可以将Docker容器理解为一种轻量级的沙盒( sandbox )。

每个容器内运行着一个应用,不同的容器相互隔离,容器之间也可以通过网络互相通信。容器的创建和停止十分快速,几乎跟创建和终止原生应用一致;另外,容器自身对系统资源的额外需求也十分有限,远远低于传统虚拟机。 很多时候,甚至直接把容器当作应用本身也没有任何问题。

2.为什么使用Docker?

1. Docker 窑器虚拟化的好处

常见的 LAMP (Linux+Apache+MySQL+PHP )组合来构建网站 。 按照传统的做法,首先需要安装 Apache 、MySQL 和 PHP以及它们各自运行所依赖的环境;之后分别对它们进行配置(包括创建合适的用户、配置参数等);经过大量的操作后,还需要进行功能测试,看是否工作正常;如果不正常,则进行调试追踪,意味着更多的时间代价和不可控的风险。可以想象,如果应用数目变多,事情会变得更加难以处理。

如果一旦需要服务器迁移,往往需要对每个应用都进行重新部署和调试。 这些琐碎而无趣的“体力活”,极大地降低了用户的工作效率。 究其根源,是这些应用直接运行在底层操作系统上,无法保证同一份应用在不同的环境中行为一致。 而 Docker 提供了一种更为聪明的方式,通过容器来打包应用、解藕应用和运行平台 。这意味着迁移的时候,只需要在新的服务器上启动需要的容器就可以了,无论新旧服务器是否是同一类型的平台 。 这无疑将帮助我们节约大量的宝贵时间,并降低部署过程出现问 的风险。

2 . Docker在开发和运维中的优势
  • 更快速的交付和部署:使用 Docker,开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以直接使用完全相同的环境来部署代码。只要是开发测试过的代码,就可以确保在生产环境无缝运行。
  • 更高效的资源利用:运行 Docker 容器不需要额外的虚拟化管理程序(Virtual Machine Manager,VMM,以及Hypervisor)的支持, Docker 是内核级的虚拟化,可以实现更高的性能,同时对资源的额外需求很低 。
  • 更轻松的迁移和扩展:Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等,同时支持主流的操作系统发行版本。
  • 更简单的更新管理。使用 Dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作。所有修改都以增量的方式被分发和更新,从而实现自动化并且高效的容器管理。
3. Docker 与虚拟机比较
  • Docker 容器很,启动和停止可以在秒级实现,这相比传统的虚拟机方式(数分钟)要快得多;
  • Docker 容器对系统资源需求很少,一台主机上可以同时运行数千个 Docker 容器(在IBM 服务器上已经实现了同时运行! OK 量级的容器实例);
  • Docker 通过类似 Git 设计理念的操作来方便用户获取、分发和更新应用镜像,存储复用,增量更新
  • Docker 通过 Dockerfile 支持灵活的自动化创建和部署机制,以提高工作效率,并标准化流程 。
在这里插入图片描述
在这里插入图片描述

3.Docker与虚拟化

虚拟化的核心是对资源的抽象,目标往往是为了在同一个主机上同时运行多个系统或应用,从而提高系统资源的利用率,并且带来降低成本、方便管理和容错容灾等好处。

基于软件的虚拟化从对象所在的层次,又可以分为应用虚拟化和平台虚拟化(通常说的虚拟机技术即属于这个范畴) 。 前者一般指的是一些模拟设备或诸如 Wine 这样的软件,后者又可以细分为几个子类:

  • 完全虚拟化 。 虚拟机模拟完整的底层硬件环境和特权指令的执行过程,客户操作系统无须进行修改。
  • 硬件辅助虚拟化。利用硬件 (主要是 CPU )辅助支持(目前 x86 体系结构上可用的硬件辅助虚拟化技术包括 Intel-VT 和 AMD-V)处理敏感指令来实现完全虚拟化的功能,客户操作系统无须修改 ,例如 VMware Workstation , Xen, KVM;
  • 部分虚拟化。只针对部分硬件资源进行虚拟化,客户操作系统需要进行修改。现在有些虚拟化技术的早期版本仅支持部分虚拟化;
  • 虚拟化paravirtualization)。部分硬件接口以软件的形式提供给客户机操作系统,客户操作系统需要进行修改。
  • 操作系统级虚拟化。内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程。
在这里插入图片描述
在这里插入图片描述

传统方式是在硬件层面实现虚拟化,需要有额外的虚拟机管理应用和虚拟机操作系统层 。 Docker 容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,因此更加轻量级 。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-10-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.什么是Docker?
  • 2.为什么使用Docker?
    • 1. Docker 窑器虚拟化的好处
      • 2 . Docker在开发和运维中的优势
        • 3. Docker 与虚拟机比较
        • 3.Docker与虚拟化
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档