Docker

Docker是一个容器化平台,它以容器的形式将应用程序及其所有依赖项打包在一起,以确保应用程序在任何环境中运行。

Docker镜像

Docker 镜像是 Docker 容器的只读模板,用于创建容器。
在这里插入图片描述
已经存在的镜像层不需要 pull。

Docker容器

Docker容器包括应用程序及其所有依赖项,但与其他容器共享内核,作为主机操作系统上用户空间中的独立进程运行。Docker容器不依赖于任何特定的基础架构:它们可以在任何计算机,任何基础架构和任何云中运行。

实际上,容器的本质是镜像在运行的时候,在镜像最上层添加了一个可写层,我们所有的修改都是在这层来完成的,而这个修改并不会对基础镜像产生影响,修改容器中的数据实际上是先从镜像层把数据复制到容器层,然后修改之后会把修改之后的数据保存在容器层,镜像层不会发生变化,这个其实就是UnionFS(联合文件系统)来实现的,所以它的影响只局限在当前的容器中。
在这里插入图片描述

Docker仓库

仓库是集中存放镜像文件的场所。仓库注册服务器( Registry)上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

仓库分为公开仓库和私有仓库两种形式。最大的公开仓库是 Docker hub,存放了数量庞大的镜像供用户下载。

用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上pull下来就可以了。

Docker与虚拟机有何不同

Docker不是虚拟化方法。它依赖于实际实现基于容器的虚拟化操作系统级虚拟化的其他工具

Docker 是应用程序容器,旨在打包和运行单个服务,多个 Docker 容器可以共用操作系统;
虚拟机是系统容器,旨在运行多个进程,每个虚拟机需要有一个操作系统。
在这里插入图片描述

Docker的工作原理

每个容器都在自己的命名空间中运行,但使用与所有其他容器完全相同的内核。发生隔离是因为内核知道分配给进程的命名空间,并且在API调用期间确保进程只能访问其自己的命名空间中的资源。

Docker容器的几种状态

运行、已暂停、重新启动、已退出。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐