什么是Docker
Docker 是一个开源的应用容器引擎,基于Go语言并遵从 Apache2.0 协议开源
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低
Docker的应用场景
Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境
Docker的优点
Docker 是一个用于开发,交付和运行应用程序的开放平台借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用
Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟
Docker的基本概念
1. 镜像
操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root
文件系统为其提供用户空间支持。而Docker镜像
(Image),就相当于是一个 root
文件系统。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资
源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数
据,其内容在构建之后也不会被改变。
2. 容器
镜像(Image
)和容器(Container
)的关系,就像是面向对象程序设计中的 类
和 实例
一样,镜像是静态的定义,容器是镜像
运行时的实体。容器可以被创建、启动、停止、删除、暂停等。容器的实质是进程,但与直接在宿主执行的进程不同,容器进
程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root
文件系统、自己的