1、什么是 Docker ?

  1. Docker 是基于 Go 语言实现的开源容器;
  2. “一次封装,到处运行”; ```bash Docker 的构想是要实现“ Build , Ship and Run Any App, Anywhere ”,即通过对应用的封装( Packaging )、分发( Distribution )、部署( Deployment )、运行( Runtime )生命周期进行管理,达到应用组件级别的“ 一次封装,到处运行” 。

这里的应用组件, 既可以是一个Web 应用、一个编译环境,也可以是一套数据库平台服务,甚至是一个操作系统或集群。

  1. <a name="AetM1"></a>
  2. # 2、为什么要使用 Docker ?
  3. 1. 应用脱离底层物理硬件的限制;快速分发、部署分布式应用程序;
  4. ```bash
  5. 传统LAMP(linux + apache + mysql + php)组合,多台主机,需要多次安装、测试已确定是否正常工作。
  6. 可怕的是,一旦需要服务器迁移(由阿里云到腾讯云),又需要重新安装、测试环境。

Docker 在开发和运维中的优势

更快速的交付和部署

更高效的资源利用

更轻松的迁移和扩展

更简单的更新管理

Docker 与虚拟机比较

  1. Docker 容器很快,启动和停止可以在秒级实现,这相比传统的虚拟机方式(数分钟) 要快得多;
  2. Docker 容器对系统资源需求很少,一台主机上可以同时运行数千个Docker 容器(在 IBM 服务器上已经实现了同时运行! OK 量级的容器实例);
  3. Docker 通过类似 Git 设计理念的操作来方便用户获取、分发和更新应用镜像,存储复 用,增量更新;
  4. Docker 通过 Dockerfile 支持灵活的自动化创建和部署机制,以提高工作效率,并标准 化流程。

Docker 容器技术与传统虚拟机技术的比较

特性 容器 虚拟机
启动速度 秒级 分钟级
性能 接近原生 较弱
内存代价 很小 较多
硬盘使用 一般为MB 一般为GB
运行密度 单机支持上千个容器 一般几十个
隔离性安全 隔离 完全隔离
迁移性 优秀 一般

image.png