Docker (一):docker介绍

一、背景介绍

  Docker是dotCloud公司(现已更名为Docker股份有限公司)的一款开源产品,从dotCloud公司于2013年将Docker开源到现在,短短几年的时间,就已经成为了开源社区炙手可热的项目,并且广受好评。随着Docker的流行,越来越多的优秀开发者加入了Docker社区参加开发,几乎所有的云计算公司,诸如Azure、Google和亚马逊等都支持Docker技术,Docker技术已经成为了云计算领域的一个重要组成部分。

二、什么是Docker

  Docker实际上是一种容器技术,它使用容器引擎解决了平台依赖的问题。Docker在每天宿主机上都启动一个守护进程,守护进程屏蔽了与具体平台相关的信息,对上层应用提供统一的接口。通过这种方式,Docker化的应用就可以在多个平台上使用。java号称“Write once,Run anyWhere”,而Docker则是“Build once,Run anyWhere,Configure once,Run anything”。

  实际上如果Docker和虚拟机是有些类似的,在Docker容器内运行的应用于具体的平台是无关的。当然,Docker和虚拟机虽然有些类似,但是它们是有本质的不同的。众所周知,虚拟机体积庞大,暂用的资源也非常多,就我个人而言,除非迫不得已,我通常不会选择使用虚拟机。而Docker在这一点上有极大的不同,Docker通过分层共享和增量更新的技术,极大的减小了体积,达到了轻量安装的方式,而它的开销远小于虚拟机。仅以启动时间来比较,Docker是微秒级的,而虚拟机则是分钟。

三、为什么使用Docker

  在实际开发中我们经常会被一些繁琐的问题困扰,但是又不得不面对:

    1. 为了节约成本,公司成员之间或者项目组之间经常共用一台开发机,管理混乱,相互干扰
    2. 通常每个项目的开发环境都是不一样的,但同时进行多个开发任务的时候,不得不反复修改环境,以适应不同的开发任务
    3. 项目中的多个成员希望各自的开发环境保持一致,但是开发环境难以复制,即使初始环境一致,随着项目的滚动、开发环境的不断更新,最终也难以统一
    4. 当开发机出现故障需要更换机器的时候,不得不花费大量的时间重新搭建繁琐的开发环境
    5. 当需要调研测试新的软件时,安装配置文档繁琐,仅仅把软件安装、配置好就可能花费大半天的时间

      ...

  以上这些问题都可以通过Docker解决:

    1. Docker化的应用使用容器虚拟化技术,每个应用都运行在独立的虚拟环境中,互相隔离,不用担心一机多用造成的混乱
    2. 当有多个开发任务时,可以并行启动这些应用的Docker容器,每一个Docker应用都有一个独立的运行环境,互不干扰
    3. 开发成员可以从Docker仓库中下载开发环境的镜像,确保大家的环境都是一致的。
    4. 开发机故障需要重新搭建环境时,只需要从仓库中拉下相关镜像,就可以在几分钟内重新搭建好环境, 而且和原来的环境是一样的。
    5. Docker的每个复杂的软件都可以做成镜像,分享给其他人使用。并且随着Docker的流行,几乎所有的主流软件都提供了Docker化的部署方式,软件部署变得更为简单。

四、安装docker

  macOS:直接下载安装即可,地址:https://download.docker.com/mac/stable/Docker.dmg

  CentOS:curl -sSL https://get.docker.com/ | sh

        curl -sSL https://get.daocloud.io/docker | sh 

        curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet   

  Ubuntu:curl -sSL https://get.docker.com/ | sh         

posted @ 2017-07-20 15:37  蝙蝠之殇  阅读(259)  评论(0编辑  收藏  举报