docker中文教程

原创 docker
半兽人 发表于: 2021-03-01   最后更新时间: 2021-06-01 10:36:14  
{{totalSubscript}} 订阅, 6,323 游览

Docker是软件开发者用容器构建、运行和共享应用程序的平台。一个容器是一个运行在隔离环境中、拥有自己的文件系统上的进程;这个文件系统是使用Docker镜像构建的。镜像文件包括运行应用程序所需的一切(编译后的代码、依赖关系、库等)。

Docker是什么?

早期,因为现在物理服务器是很强大的,我们如果在一台物理服务器上只跑一个程序就浪费了,而同时跑很多程序他们又会互相影响,比如说某个程序内存泄漏从而把整个服务器的内存都占满了,其他程序都跟着受影响。所以为了让每个程序不互相干扰,让它们只使用自己那部分有限的cpu,内存和磁盘,以及自己依赖的软件包。这个早先是用虚拟机来实现隔离的,但是每个虚拟机都要装自己的操作系统核心,这是对资源是巨大的浪费。于是就有了Docker,一个机器上可以装十几个到几十个docker,他们共享操作系统核心,占用资源少,启动速度快。但又能提供了资源(cpu, 内存,磁盘等)的隔离。

docker为什么那么快?

Docker利用的是宿主机的内核,而不需要Guest OS,因此,当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统,避免了引导、加载操作系统内核这个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,这个新建过程是分钟级别的,而Docker由于直接利用宿主机的操作系统则省略了这个过程,因此新建一个Docker容器只需要几秒钟。

小就意味着着省钱,小就意味着快。

screenshot

虚拟机管理系统(Hypervisor)

利用Hypervisor,可以在主操作系统之上运行多个不同的从操作系统。一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。

Docker守护进程(Docker Daemon)

Docker守护进程取代了Hypervisor,它是运行在操作系统之上的后台进程,负责管理Docker容器

Docker与虚拟化的区别

名称 Docker容器 虚拟机(VM)
操作系统 与宿主机共享OS, 宿主机OS上运行宿主机OS
存储大小 镜像小,便于存储与传输 镜像庞大(vmdk等)
运行性能 几乎无额外性能损失 操作系统额外的cpu、内存消耗
移植性 轻便、灵活、适用于Linux 笨重、与虚拟化技术耦合度高
硬件亲和性 面向软件开发者 面向硬件运维者

以下是容器的一些特点:

  • 灵活:即使是最复杂的应用也可以被容器化。
  • 轻量级:容器共享主机内核,使其比虚拟机更高效。
  • 可移植:可在本地编译并在任何地方运行。
  • 松耦合:容器各自是独立封装的,允许一个容器被替换或升级而不影响、中断其他容器。
  • 安全:容器采用积极的限制和隔离策略,不需要用户进行任何配置。


上一条: 到头了!
下一条: docker命令大全

查看docker更多相关的文章或提一个关于docker的问题,也可以与我们一起分享文章
提问