Docker系列——Docker介绍

393 阅读2分钟

这是我参与8月更文挑战的第27天,活动详情查看:8月更文挑战

什么是Docker

Docker不是一种编程语言,也不是构建软件的框架,Docker是一个工具,可以帮助解决如何安装、拆卸、升级、分发、信任和软件管理等常见问题。

Docker包括一个命令行程序、一个后台守护进程,以及一组远程服务。它解决了常见的软件问题,并简化了安装、运行、发布和删除软件。这一切能够实现是通过使用容器技术进行实现的。

容器

Docker容器不同于虚拟化,虚拟机提供虚拟硬件,可以安装一个操作系统以及其他程序。但是资源开销比较大而且创建所需时间比较大。而容器不使用虚拟化。运行在容器中的程序直接和Linux内核打交道,因为没有中间层,所以所需要消耗的资源会相对来说小一点

隔离容器中运行软件

Docker并不提供容器技术,不过其使得容器更易于使用。命令行工具在用户空间的内存中运行,理想状态下,用户空间运行的程序不能修改内核空间的内存。下图为计算机系统结构上运行的基本容器示例:

image.png

运行Docker可以说是在用户空间运行两个程序,一个是Docker守护进程,一个是Docker CLI,其实与用户交互的Docker程序。如果要启动、停止或者安装 软件可以使用Docker CLI执行相应的命令。

image.png

上图中可以看见每个容器都是以Docker守护程序的子进程运行,封装在容器中,并授权其在自身用户空间的存储子空间中运行。在容器中运行的程序,只能访问属于自己的该容器审定过的内存空间和资源。

分发容器

Docker通过一种打包和分发的软件,完成传统容器的封装。这个用来充当容器分发角色的组件被称为镜像。

镜像

Docker镜像是一个容器中运行程序的所有文件的捆绑快照。一个镜像可以创造出许多的容器,不过这些容器不会共享文件。Docker分发软件就是分发这些镜像,并在接受的机器上创建容器。镜像在Docker生态系统中是可交付的基本单位。