Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。
Docker通常用于如下场景:
• web应用的自动化打包和发布;
• 自动化测试和持续集成、发布;
• 在服务型环境中部署和调整数据库或其他的后台应用;
• 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
Docker的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让我们的应用程序具备可移植性、易于构建、并易于协作。
• Docker 是一个开源的软件部署解决方案。
• Docker 也是轻量级的应用容器框架。
• Docker 可以打包、发布、运行任何的应用。
• Docker 就像一个盒子,里面可以装很多物件,如果需要某些物件,可以直接将该盒子拿走,而不需要从该盒子中一件一件的取。
• Docker 是一个客户端-服务端(C/S)架构程序。
o 客户端只需要向服务端发出请求,服务端处理完请求后会返回结果。
Docker 包括三个基本概念:
• 镜像(Image)
o Docker的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。
o 例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了MySQL或用户需要的其它应用程序。
• 容器(Container)
o Docker容器是由Docker镜像创建的运行实例,类似VM虚拟机,支持启动,停止,删除等。
o 每个容器间是相互隔离的,容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。
• 仓库(Repository)
o Docker的仓库类似Github一样的,用于托管镜像的。