docker的基本概念
docker是基于Golang语言实现的云开源项目。
docker的目标
Build,Ship and Run Any App Anywhere,即通过对应用组件的封装,分发,部署,运行等生命周期的管理,使应用及运行环境能做到一次封装,到处运行。
docker的概念
解决运行环境和配置问题软件容器, 方便做持续集成并有助于整体发布的容器虚拟化技术
docker的组成
- dockerClient客户端
- docker Daemon守护进程
- docker Image镜像
- dockerContainer容器。
docker的场景
- web应用的自动化打包和发布
- 自动化测试和持续集成、发布
- 在服务型环境中部署和调整数据库或其他的后台应用
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
docker的作用
- 之前的虚拟机技术
虚拟机(vartual machine) 是带环境安装的一种解决方案
它可以在一种操作系统中安装另一种操作系统, 应用程序无感知, 对于底层系统来说,虚拟机就是一个普通文件, 不需要就删掉,虚拟机完美运行了另一套系统,
是应用程序、操作系统、硬件三者的逻辑不变虚拟机的缺点
1、资源占用多 2、冗余步骤多 3、启动慢
- 容器虚拟技术
Linux容器不是模拟一个完整的操作系统, 对进程进行隔离,可以对软件运行所需资源打包到
一个隔离容器中。容器与虚拟机不同, 容器不要捆绑一套操作系统, 只需要软件所需的库资源和设置。
系统变得高效轻量并保证部署在任何环境的软件都始终如一。
docker和传统虚拟机化方式的不同之处:
- 传统虚拟化技术是虚拟化一套硬件后,运行一个完整的操作系统, 在该系统上在运行所需的应用进程。
- 容器内的应用直接运行于宿主的内核, 容器没有自己的内核, 也没进行硬件虚拟。故容器比传统虚拟机更轻便。
- 每个容器之间互相隔离, 每个容器都有自己的文件系统, 容器之间不会相互影响,能区分计算资源。
- 开发/运维(DevOps)
一次构建、到处运行
- 更快速的应用交付和部署
- 更便捷的升级和扩容
- 更简单的系统运维
- 更高效的计算资源利用
- 企业级
新浪、美团、蘑菇街等