Docker实战 - (EPUB全文下载)
文件大小:0.45 mb。
文件格式:epub 格式。
书籍内容:
Docker实战
第1部分 保持一台整洁的机器
第2部分 镜像发布:如何打包软件
第3部分 多容器和多主机环境
后记
第1部分 保持一台整洁的机器
隔离是众多计算模式、资源管理策略和一般审计实践的一个核心概念,很难在一开始就编制好一切。学习 Linux 容器如何为运行的程序提供隔离,以及如何使用Docker来控制隔离,可以实现惊人的创举:重用、资源有效配置和系统简化。
对这部分内容的深入理解是每个读者掌握不断发展的 Docker和容器生态系统的坚实基础。像Docker工具集本身,这部分提供了可构建的工具块,用来解决更大的问题。出于这个原因,我建议大家尽量不要跳过这部分内容的学习。解决你心中的具体问题可能需要一些时间,但我相信这个过程会让你收获更多的启示。
第1章 欢迎来到Docker世界
本章介绍
■ Docker是什么
■ 容器的简介
■ Docker如何解决大多数人只能忍受的软件问题
■ 何时、何地、为何你应该使用Docker
■ 举例:"Hello World"
如果我们是相似的人,我猜为了完成那些不愉快或者平庸的任务,你也会喜欢只做必需之事。这可能是因为你同样喜欢使用一个简单易用的工具,来解决那些复杂或费时的工作。如果我猜得没错,我想你会对学习Docker感兴趣的。
假设你想尝试一款新的 Linux 软件,但是担心运行起来的是恶意代码。为了保护你的机器,在Docker中运行该软件是很好的第一步。因为Docker可以帮助大多数普遍软件用户利用好强大的安全工具。
如果你是一名系统管理员,将Docker作为软件管理工具集的基础,将节省你的时间,让你专注于高价值的事情,因为Docker可以最大限度地减少你花在琐碎工作上的时间。
如果你编写软件,通过Docker发布,你的用户会更容易安装并运行它。在Docker封装的开发环境中编写软件,将节省配置或共享环境的时间,因为从软件的角度来看,每个环境都是一样的。
假设你拥有或管理大型系统或数据中心。使用 Docker 来创建 build,测试和部署管道会变得很简单,因为通过这样一个管道可以应用到其他任何软件。
2013年3月推出的Docker,可以和操作系统协作来打包、分发和运行软件。你可以把Docker作为软件分发供应商,用来节省你的时间,让你专注于高价值的事情。你可以使用Docker构建网络应用,如Web服务器、数据库和邮件服务器,也可以构建终端应用程序,比如文本编辑器、编译器、网络分析工具和脚本;在某些情况下,它甚至可用来运行 GUI程序,如网页浏览器和生产力类的软件。
不仅仅是Linux Docker是一款Linux软件,但可以很好地运行在大多数操作系统上。
Docker不是一种编程语言,并且也不是构建软件的框架。Docker是一个工具,可以帮助解决如安装、拆卸、升级、分发、信任和管理软件等常见问题。它是开源的Linux软件,这意味着任何人都可以为之做出贡献,Docker因此已在诸多方面受益匪浅。公司赞助开源项目的开发也很常见。在这种意义上,Docker 公司(Inc.)是主赞助商。你可以在下面网址找到更多关于Docker公司的信息:https://docker.com/company/。
1.1 什么是Docker
Docker包括一个命令行程序、一个后台守护进程,以及一组远程服务。它解决了常见的软件问题,并简化了安装、运行、发布和删除软件。这一切能够实现是通过使用一项UNIX技术,称为容器。
1.1.1 容器
从历史上看,UNIX风格的操作系统都使用jail这个术语来形容一个修改过的运行时环境,以防止该程序访问受保护的资源。自2005年以来,Sun的Solaris 10和Solaris容器发布后,容器已经成为这样一个运行环境的首选术语。而我们的目标,已经从防止对受保护资源的访问,扩展到隔离所有的资源,除非明确允许。
使用容器已经是很长一段时间的最佳做法。但手动创建容器,仍然具有挑战性,而且很容易出错。错误配置的容器却让他人产生安全的错觉。这个问题直到Docker的出现终于得到解决。任何使用Docker运行的软件其实是在一个容器内运行。Docker使用现有的容器引擎,根据最佳实践提供一致的Docker构建方案。这给大家带来了触手可及且更强的安全性。
有了Docker,用户以更低的成本获得容器。随着Docker和容器引擎改进,你获得最新和最好用的“jail”功能。不用再紧跟着迅速发展且高技术性的构建强大应用jail的世界了,相反你只要让Docker帮你处理这些事情就好。这将节省大量的时间和金钱,并带来心灵的平静。
1.1.2 容器不是虚拟化
在没有 Docker 的时代,商家通常使用硬件虚拟化(也称为虚拟机),以提供隔离。虚拟机提供虚拟的硬件,可安装一个操作系统和其他程序。它们需要很长的时间(通常以分钟计)来创建,也需要显著的资源开销,因为它们除了要执行你需要的软件,还得运行整个操作系统的副本。
不同于虚拟机,Docker容器不使用硬件虚拟化。运行在Docker容器中的程序接口和主机的 Linux 内核直接打交道。因为容器中运行的程序和计算机的操作系统之间没有额外的中间层,没有资源被冗余软件的运行或虚拟硬件的模拟而浪费掉。这是一个很重要的区别。Docker不是一个虚拟化技术。相反,它可以帮助使用已经内置到操作系统中的容器技术。
1.1.3 在隔离的容器中运行软件
如上所述,容器已经存在了几十年。Docker使用的是2007年就已经成为Linux一部分的Linux命名空间和cgroups。Docker并不提供容器技术,但它使得容器更易于使用。要了解系统中的容器长什么样子,让我们先建立一条基准线。如图1-1所示画出了在一个简化的计算机系统体系结构上运行的基本容器示例。
图1-1 运行由命令行启动的两个应用所需的程序栈
请注意,命令行工具或CLI在被称为用户空间的内存中运行,就像是在操作系统上运行的其他程序。在理想情况下,用户空间运行的程序不能修改内核空间的内存。 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » Docker实战 - (EPUB全文下载)