ad

《基于Kubernetes的容器云平台实战》_了解最新技术前沿_1.1 什么是Docker

admin 151 2023-10-25

【摘要】 本书摘自《基于Kubernetes的容器云平台实战》一书中第1章,第1节,由陆平、左奇、付光和张晗等编著。

1.1 什么是Docker

我们通常所说的 Docker 实际上是指 Docker 引擎,它是Docker 公司容器平台产品的核 心部分。它集成了来自操作系统内核的联合文件系统、进程控制组和命名空间等技术,将 它们打包成人人可用、人人用得好的容器工具。 Docker 的重要性在于它通过统一的镜像格 式和简单的工具将应用软件和基础运行环境成功地隔离开来,为容器技术的大众化打开了 快速通道,使得容器技术的使用进入了主流。 Docker 的镜像格式和运行时环境正在迅速成 为事实上的工业标准,而它自身也在变成云时代的基础“构件”。

Docker 引擎可理解为一套轻量级应用运行时环境,应用及其依赖被隔离在相互独立的 运行环境中,但是它们却共享一个OS 内核,人们形象地将这种环境称为“容器”。这种将 多个应用部署在一台主机上以相互独立的“容器”运行的模式,不仅能提高硬件利用率, 还能减少应用故障对其他应用的影响。Docker引擎使用了客户端-服务器的运行模式,其主体以守护程序方式运行在每台需 要使用它的主机上。客户端既可以与守护程序运行在同一台主机上,也可以通过Restful形 式的API 远程访问它。 Docker引擎服务器端不仅提供了对容器生命周期的完整管理功能, 还将容器的创建基础 “镜像”的管理功能也纳入其中,为用户提供了“一站式”容器 管理工具集。它用Go 语言编写而成,需要利用操作系统的虚拟文件系统、命名空间、控 制组等特性来实现自己的功能,并需要不少外部库的支持。 Docker 引擎目前已经能够支持 Linux、MacOS 和 Windows 三种操作系统,可以部署在物理机、虚拟机和公有云等多种环 境中。

在Docker 中,“镜像”是创建容器的基础。 Docker 使用分层的方式存储镜像,镜像中 包含应用运行所需要的组件。镜像之间可以通过引用的方式共享镜像层,减少了对存储空 间的占用,让大家既能享受“隔离”带来的好处,又能减轻资源浪费带来的苦恼。而容器 环境是根据镜像来动态创建的,容器中应用的写操作只改变自己的读写层,公共的镜像部 分对所有容器都是只读的。

Docker还为镜像分发设计了仓库机制,通过本地和远程仓库之间的上传和下载可实现 软件的标准化分发,打通了从应用开发、镜像构建、发布、下载到应用部署的完整通道。 Docker专门构建了完全开放的镜像仓库hub.docker.com, 帮助全世界的软件厂商、开发者 和使用者以最小的时间和技术成本体验到容器技术带来的好处;它无疑为统一的镜像格式 的推广使用立下汗马功劳。

在Linux操作系统上, Docker 利用内核所提供的 namespace 和 CGroups 特性为应用进 程构建起沙箱和资源限制:在此沙箱容器中,应用拥有自己的设备文件、进程间通信环境、 根文件系统、进程空间、用户账户空间和网络资源空间;管理员可以以容器为单位来限制 应用对CPU、 内存、磁盘I/O和网络等资源的使用能力。运用这两个技术, Docker 为应用 构建了既轻又坚固的容器外壳,同时,它还将内核提供的很多不同的安全相关技术集成起 来,为用户在云时代应对各种挑战准备了丰富和先进的技术装备。

《基于Kubernetes的容器云平台实战》_了解最新技术前沿_1.1 什么是Docker

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:从《Python数据分析案例教程》中_领悟数据和Python的魅力_5.4 Pandas 读写HTML文件中的数据
下一篇:打开《Python入门与实战》_一步步学会Python_4.6 变量的作用域
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×