docker 初始

一 docker概述

1.1 什么是dokcer

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,听从了 Apache 2.0 协议,项目代码在 GitHub 上 进行维护。Docker 自开源后受到普遍的关注和讨论,以致于 dotCloud 公司后来都更名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中普遍应用。Docker 项目的目标是实现 轻量级的操做系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不须要去关心容器的管理,使得操做更为简便。用户操做 Docker 的容器就像操 做一个快速轻量级的虚拟机同样简单。Docker 可让开发者打包他们的应用以及依赖包到一个轻量级、可移植 的容器中,而后发布到任何流行的 Linux 机器上,也能够实现虚拟化。容器是彻底使用沙箱机制,相互之间不 会有任何接口(相似 iPhone 的 app),更重要的是容器性能开销极低。git

二 为何要用docker

2.1 Docker 容器虚拟化的好处

在云时代,开发者建立的应用必需要能很方便地在网络上传播,也就是说应用必须脱离底层物理硬件的限制; 同时必须知足“任什么时候间任何地点”可获取可以使用的特色。所以,开发者们须要一种新型的建立分布式应用程序 的方式,快速分发部署,而这正是 Docker 所可以提供的最大优点。Docker 提供了一种更为聪明的方式,经过 容器来打包应用、解耦应用和运行平台。这意味着迁移的时候,只须要在新的服务器上启动须要的容器就能够了, 不管新旧服务器是不是同一类别的平台。这无疑帮助咱们节约了大量的宝贵时间,并下降部署过程出现问题的风 险。docker

2.2 Docker 在开发和运维中的优点

对于开发和运维人员来讲,最求之不得的效果可能就是一次建立和配置,以后能够在任意地方、任意时间让 应用正常运行,而 Docker 偏偏能够实现这一中级目标。具体来讲,在开发和运维过程当中,Docker 具备如下几 个方面的优点:
·······更快的交付和部署:使用 Docker,开发人员可使用镜像来快速构建一套标准的开发环境;开发完之 后,测试和运维人员能够直接使用彻底相同的环境来部署代码。只要是开发测试过的代码,就能够确保 在生产环境无缝运行。Docker 能够快速建立和删除容器,实现快速迭代,节约开发、测试及部署的时间
·······更高效的利用资源:运行 Docker 容器不须要额外的虚拟化管理程序的支持,Docker 是内核级的虚拟化,能够实现更高的性能,同时对资源的额外需求很低,与传统的虚拟机方式相比,Docker 的性能要 提升 1 ~ 2 个数量级。
·······更轻松的迁移和扩展:Docker 容器几乎能够在任意的平台上运行,包括物理机、虚拟机、公有云、私 有云、我的电脑等等,同时支持主流的操做系统发行版本。这种兼容性能让用户能够在不一样的平台之间 轻松的迁移应用。
·······更轻松的管理和更新:使用 Dockerfile,只须要小小的配置修改,就能够替代以往大量的更新工做。所 有的修改都以增量的方式被分发和更新,从而实现自动化而且高效的容器管理。ubuntu

2.3 docker与虚拟机的比较

做为一种轻量级的虚拟化方式,Docker 在运行应用上跟传统的虚拟机的方式相比具备以下显著优点:安全

1.Docker 容器启动很快,启动和中止能够实现秒级,相比传统的虚拟机方式(分钟级)要快速不少。 
2.Docker 容器对系统资源需求不多,一台主机上能够同时运行数千个 Docker 容器。 
3.Docker 经过相似 git 设计理念的操做来方便用户获取、分发和更新应用镜像,存储复用,增量更新。 
3.Docker 经过 Dockerfile 支持灵活的自动化建立和部署机制,能够提升工做效率,并标准化流程。
特性 容器 虚拟机
启动速度 秒级 分钟级
性能 接近原生 较好
内存 MB级 GB级
硬盘适应 MB级 GB级
运行密度 单台主机支持上千个 单台主机支持几个
隔离性 安全隔离 彻底隔离
迁移 优秀 通常

三 docker与虚拟化

Docker 以及其余容器技术,都属于操做系统虚拟化范畴,操做系统细腻化最大的特色就是不须要额外的 supervisor 支持。Docker 虚拟化方式之因此有众多优点,跟操做系统虚拟化技术自身的设计和实现分不开
bash

四 docker概念和使用

Docker 中有三个核心概念:镜像、容器和仓库。所以,准确把握这三大概念对于掌握 Docker 技术尤其重 要。服务器

  1. 镜像(Image) Docker 镜像(Image),就至关因而一个 root 文件系统。好比官方镜像 ubuntu:16.04 就包含了完 整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  2. 容器(Container) 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例同样,镜像是静 态的定义,容器是镜像运行时的实体。容器能够被建立、启动、中止、删除、暂停等。
  3. 仓库(Repository) 用来保存镜像的仓库。当咱们构建好本身的镜像以后,须要存放在仓库中,当咱们须要启动一个镜像时, 可 以在仓库中下载下来。

相关文章
相关标签/搜索