如何进行Docker简介的原理分析

75次阅读
没有评论

共计 1931 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章给大家介绍如何进行 Docker 简介的原理分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

生活在云时代的程序员真是很幸福,各种各样丰富的开发工具可选。既然生活在云时代,那么,程序员就应该用云思维来进行开发,本系列文章就是基于 Docker 开发学习和总结笔记。

背景

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目,使用 go 语言实现,遵从 Apache 2.0 协议,项目代码托管在 github 上。

由于众多新颖的特性以及项目本身的开放性,Docker 在不到两年的时间迅速获得诸多厂商的青睐,其中包括 Google,Microsoft,VMware 等业界行业领导者,今年 9 月中旬,Docker 获得 4000 万美元的 C 轮融资,以推动分布式应用方面的发展。

原理

Docker 是一个基于轻量级虚拟化技术的容器引擎项目,Docker 可以在容器内快速自动化部署应用,并且可以通过内核虚拟化技术(namespaces 以及 cgoups 等)来提供容器的资源隔离与安全保障,由于 Docker 通过操作层的虚拟化实现隔离,所以 Docker 容器在运行时,不需要类似虚拟机(VM)额外操作系统开销,提高资源利用率,并且提升注入 IO 等方面性能。

Docker 的英文意思是码头工人,也就是搬运工,搬运的时集装箱 (Container),集装箱里装的不是商品,而是任意类型的 App,docker 把 App(叫 Paylaod)装在 Container 内,通过 Linux Container 技术的包装将 App 变成一种标准的、可移植的、自管理的组件,这种组建可以在开发者的系统中开发、调试、运行,最终非常方便和一致地运行在产品(Porduction)环境下。

特性

Docker 提供了一种可移植的配置标准化机制,允许你一致性地在不同的机器上运行同一个 Container;而 LXC 本身可能因为不同机器的不同配置而无法方便地移植运行;

Docker 以 App 为中心,为应用的部署做了很多优化,而 LXC 的帮助脚本主要是聚焦于如何机器启动地更快和耗更少的内存;

Docker 为 App 提供了一种自动化构建机制(Dockerfile),包括打包,基础设施依赖管理和安装等等;

Docker 提供了一种类似 git 的 Container 版本化的机制,允许你对你创建过的容器进行版本管理,依靠这种机制,你还可以下载别人创建的 Container,甚至像 git 那样进行合并;

Docker Container 是可重用的,依赖于版本化机制,你很容易重用别人的 Container(叫 Image),作为基础版本进行扩展;

Docker Container 是可共享的,有点类似 github 一样,Docker 有自己的 INDEX,你可以创建自己的 Docker 用户并上传和下载 Docker Image;

Docker 提供了很多的工具链,形成了一个生态系统;这些工具的目标是自动化、个性化和集成化,包括对 PAAS 平台的支持等;

Docker 与传统虚拟街区别

## 为什么要学习 docker

Docker 是一种新兴的虚拟化方式,和传统的虚拟化方式相比具有很多优势。

首先,Docker 提供的时系统级的虚拟化,相比传统的虚拟化方式,Docker 资源利用率极高,除了容器内的应用外,Docker 基本上不消耗额外的系统资源,传统的虚拟机同时开启数个虚拟机时需要同时运行数个虚拟机应用,而 Docekr 只需要启动相应的隔离层即可,所有,一台主机可以运行成百上千的 Docker 容器。其次,Docker 容器的启动是秒级的,这是传统虚拟机所无法达到的。

更快的交付和部署

对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。

开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

## 学习 Docker 应该具备哪些知识

具备一定的 Linux 使用经验,能熟悉的使用 Linux 命令行。对 PAAS、LXC、CGroup、AUFS 有一定的了解基础。

学习中需要注意什么

在学习的过程中可能会接触到很多新概念,对于不太了解的概念应该及时使用搜索引擎找找相应的答案。多实践,对于学习的过程遇到的问题应该亲自动手实践,并解决。

关于如何进行 Docker 简介的原理分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计1931字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)