一、概述
Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分离,从而实现快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker快速交付,测试和部署代码的方法,可以显着减少你从编写代码到在生产环境中运行这些代码之间的时差。
二、重要概念
1. 镜像(Image)
Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、依赖库、资源、配置文件、运行时的配置参数(如:匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
2. 容器(Container)
镜像(Image
)和容器(Container
)的关系,就像是面向对象程序设计中的 类
和 实例
一样,镜像是静态的定义容器只读模板,容器是镜像运行时的具体实体。容器可以被创建、启动、停止、删除、暂停、重、重启等。
容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间(namespace
),具有隔离性。因此容器可以拥有自己的 root
文件系统、自己的网络配置、自己的进程空间等。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全,从此再也不用担心本地多个应用需要不同版本的依赖导致的冲突问题了。