1-docker 介绍

由PaaS到Container

2013年2月,前Gluster的CEO Ben Golub 和 dotCloud 的 CEO Solomon Hykes 坐在一起聊天时,Solomon谈到想把 dotCloud 内部使用的Container容器技术单独拿出来开源,然后围绕这个技术开一家新公司提供技术支持。28岁点Solomon在使用python开发dotCloud的PaaS云时发现,使用LXC(Linux Container)技术可以打破产品发布过程中应用工程师和系统工程师两者之间无法轻松协作发布产品的难题。这个Container容器技术可以把开发者从日常部署的繁杂工作中解脱出来,让开发者能专心写好程序;从系统工程师到角度来看也是一样的,他们迫切需要从各种混乱的部署中解脱出来,让系统工程师专注在应用的水平扩展、稳定发布的解决方案上。他们深入交谈,觉得这是一次云技术的变革,紧接着在2013年3月Docker0.1发布,拉开来基于云计算平台发布产品方式的变革序幕。

了解paas

Docker 简介

Docker时Docker.lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。Docker在2014年6月召开DockerConf2014技术大会吸引了IBM、Google、RedHat等业界知名公司的关注和技术支持,无论是从Github上到代码活跃度,还是RedHat宣布REHL7中正式支持Docker,都给业界一个信号,这是一项创新的技术解决方案。就连Google公司的Computer Engine 也支持Docker在其中之上运行,国内BAT先锋企业百度 Baidu App Engine(BAE)平台也是以 Docker作为PasS云基础。

Docker产生的目的就是要解决以下问题

  1. 环境管理复杂:从各种OS到各种中间件再到各种App,一款产品能够成功发布,作为开发者需要关心的东西太多,且难于管理,这个问题在软件行业中普遍存在并需要直接面对。Docker可以简化部署多种应用实例工作,比如Web应用、后台应用、数据库应用、大数据应用比如Hadoop集群、消息队列等等都可以打包成一个image部署。如下图所示:

  1. 云时代的到来:AWS的成功,引到开发者将应用转移到云上,解决来硬件管理的问题,然而软件配置和管理香瓜的问题依然存在。Docker的出现正好能帮助软件开发者开阔思路,尝试新的软件管理方法来解决这个问题。

  2. 虚拟化手段的变化:云时代采用标配硬件来降低成本,采用虚拟化手段来满足用户按需分配的资源需求以及保证可用性和隔离性。然而无论是KVM还是Xen,在Docker卡来都是在浪费资源,因为用户需要的是高校运行环境而非OS,GuestOS即浪费资源,又难于管理,更加轻量级大LXC更佳灵活和快速:

  1. LXC的便携性: LXC在 Linux 2.6 的 Kernel 里就已经存在了,但是其设计之初并非为云计算考虑的,缺少标准化的描述手段和容器的可便携性,决定其构建出的环境难于分发和标准化管理(相对于KVM之类image和snapshot的概念)。Docker就在这个问题上做出了实质性的创新方法。

Docker 相比虚拟机的优势

Docker 技术比虚拟机技术更为轻便快捷

Docker 可以解决虚拟机能够解决的问题,也可以解决虚拟机由于资源要求过高而无法解
决的问题。

  • 隔离应用依赖
  • 创建应用镜像并复制
  • 创建易于分发的即开即用的应用或者应用镜像
  • 允许实例简单快速扩展
  • 易于测试和销毁

Docker 的初衷是创建软件程序可移植的轻量容器,让软件可以在任何安装了 Docker 的
主机上运行,而不用关心底层操作系统。

1-docker 介绍相关推荐

  1. 客快物流大数据项目(五):Docker介绍

    目录 Docker介绍 一.什么是虚拟化 二.初识Docker

  2. Docker介绍及安装

    Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...

  3. Docker 介绍、安装、基础搭建 --01

    1. Docker介绍 1.1 是容器,可以部分完全封闭.封闭意味:一个物质(放到容器),另一个物质(放到容器)隔离             容器可以保护里面的物质      1.2 容器的前世   ...

  4. 【云原生之企业级容器技术 Docker实战一】Docker 介绍

    目录 一.Docker 介绍 1.1 容器历史 1.2 Docker 是什么 1.3 Docker 和虚拟机,物理主机 1.4 Docker 的组成 1.5 Namespace 1.6 Control ...

  5. Day15(Js入门、jquery入门、ajax入门、前后端分离开发跨域问题、linux环境准备、jdk_tomcat环境搭建、docker介绍及应用(docker安装、基本命令、安装tomcat))

    js入门 js代码辅助 window–>preferences–>javaScript–>Content Assist .abcdefghijklmnopqrstuvwxyz alt ...

  6. docker 介绍、安装、阿里云加速

    docker介绍 Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器. C ...

  7. Docker 介绍及其应用

    Docker 介绍 1Docker 简要介绍 2 Docker 守护进程 3 Docker 客户端 4 Docker 内部 Docker 8个的应用场景 1简化配置 代码流水线Code Pipelin ...

  8. Docker介绍与安装使用(一)

    什么是Docker? docker是一个基于LXC容器技术的管理工具,提供一系列更强的功能,如可移植性(定义了标准,可以在任意主机运行).自动化构建(dockerfile).版本控制.镜像管理等. d ...

  9. docker介绍说明,docker配置代理加速器、docker使用国内镜像仓库

    文章目录 容器的介绍 了解容器 容器管理 配置docker代理[加速器] 说明 配置阿里云 配置docker加速器 使用国内镜像仓库 网易云 阿里云 容器的介绍 了解容器 下面这篇博客中清晰解释了何为 ...

  10. Docker介绍与使用

    容器 介绍 虚拟化 虚拟化技术就是对资源的抽象,如虚拟机,虚拟内存等 分类 从资源提供角度分 硬件平台虚拟化 操作系统虚拟化 从虚拟化实现方式分 Type I:半虚拟化,虚拟机直接运行在系统硬件上,被 ...

最新文章

  1. 2.1.4 对梯度消失和梯度爆炸的近似解决方案
  2. Android中的基础控件TextView、Button、ImageView、EditText、ProgressBar
  3. Java / 常见名词含义
  4. Spring—使用类加载从配置文件中读取配置
  5. 《剑指offer》面试题23——从上往下打印二叉树
  6. Windows中使用Netsh Winsock Reset命令解决网络连接问题
  7. Tomcat的Document base ……does not exist or is not a readable directory错误
  8. 人工智能资料下载地址分享
  9. ESP32实现Wave(.wav)音频文件输出
  10. DOTA 104个英雄416个技能、104首情诗
  11. Vue - 将金额数字转为汉字大写(demo)
  12. python爬取头条付费专栏视频_Python3从零开始爬取今日头条的新闻【五、解析头条视频真实播放地址并自动下载】...
  13. git版本回退的几种方式
  14. 【MySQL】 # MySQL相关面试题
  15. JAVA基础--QR_Code二维码生成
  16. 如何配置Python虚拟环境
  17. 贝叶斯方法---分段线性插值函数画图
  18. 【Arduino】2017年电子设计大赛B题 滚球控制系统|板球系统
  19. Simpack 在轨道交通中的应用
  20. 计算机二级ms office真题百度云,历年计算机网络,计算机二级Word,Excel真题及答案...

热门文章

  1. Python 条件推导式 - Python零基础入门教程
  2. React之createRef
  3. jq之$(“[href]“)
  4. 开关 关闭_无论用什么品牌手机,这个开关要关闭,以免耗电又卡顿,抓紧试试...
  5. kubectl logs -f tail 显示100_系统管理员应该知道的9个kubectl命令
  6. tcp中的crc检验算法原理_在数据传输过程中的CRC 算法的简单说明
  7. 服务器修改用户组权限设置,如何:修改用户的权限
  8. mysql查看版本号_十分钟了解MySQL事务机制
  9. java创建临时文件夹_java创建临时文件
  10. oracle display set,Check if the DISPLAY variable is set