容器基础(一): Docker介绍
IaaS
IaaS阶段, 用户租借基础设施,但是还是需要像以前管理服务器那样,用脚本或者手工方式在这些机器上部署应用。这个过程中当然难免会碰到云端机器和本地机器环境不一致的问题。想想每一次同步不同机器环境的过程,就知道这个过程的艰辛!
PaaS
2013年,Cloud Foundry开启了以开源PaaS为核心构建平台层服务能力的变革, 通过在容器底层使用Namespace和Cgroups对应用进行隔离,Cloud Foundry通过这个隔离的沙箱让多个应用能在一起互不干涉的运行。
百度百科:
Cloud Foundry支持多种框架、语言、运行时环境、云平台及应用服务,通过一套应用的打包和分发机制,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。
虽然Cloud Foundry提供了一个更好的用户体验,但是还是存在易用性问题:
对于一个"正确的"应用包,Cloud Foundry能实现快速部署,但为了能打包出这个"正确的"应用包, 过程却很繁琐,用户可能需要为不同语言和框架,甚至每个版本打一个包,而打好的包在本地能正常运行,但是在云端却不一定能正常运行。
CaaS
这个时候,Docker项目开源了,虽然Docker底层和Cloud Foundry一样,都是使用Namespace和Cgroups技术,但是另外的一小部分功能,却成为了Docker项目后面成功的关键:
通过打包整个根文件系统,把应用的所有依赖(包括操作系统文件)都打包到一起,生成Docker镜像,Docker通过Docker镜像解决了Cloud Foundry打包繁琐和不一致性的问题,提供了一种"build once, run anyway"的优雅解决办法!
容器编排(Container Orchestration)
虽然Docker项目发展迅猛,但是对于用户而言,最终要部署的,还是他们的网站、服务甚至云计算等。一个Docker中运行的是一个进程,对于用户的大规模集群而言,只有提供平台层能力的工具才会真正吸引他们。这种情况下,支持大集群容器管理的Docker Swarm和Kubernetes来了。
这里不讨论各大公司间狗血的争斗,只简单讨论下为什么Docker Swarm最终落败于Kubernetes:
Docker Swarm通过Docker镜像部署应用,但是实际上一个Docker容器里只管理一个进程。现实环境下,提供一个完整的服务通常需要多容器配合才行,比如容器A和容器B/C配合提供服务,且容器A需要容器B/C先启动, Swarm里面对这种情况的处理就比较麻烦。而Kubernetes却通过Pod轻松的解决了这一点。
容器基础(一): Docker介绍的更多相关文章
- 容器化-Docker介绍
导读:本文章对Docker技术进行了介绍,阐述了Docker的技术发展历程.容器与虚拟机的差异.Docker原理.特点.Docker三组件和Docker带来的影响,为我们进一步理解Docker打下基础 ...
- 1.docker介绍、命令、容器、镜像、数据卷、Dockerfile、常用软件安装、推送阿里云
一.docker介绍 1.docker是什么 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各 ...
- Docker 介绍及基础命令
Docker 简介 Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linu ...
- docker容器基础
一.docker容器基础6种名称空间:UTS.MOunt.IPC.PID.User.Net (1) Linux Namespaces:namespace 系统调用参数 隔离内容 内核版本 UTS ...
- URLOS开发基础教程——docker容器的使用方法
URLOS本是基于docker容器运行,在入门URLOS开发之前,我们首先需要掌握docker的相关基础知识,本篇就以docker容器的基本使用方法为例,快速的让大家对docker有一个全面的印象. ...
- 【转帖】使用容器化和 Docker 实现 DevOps 的基础知识
使用容器化和 Docker 实现 DevOps 的基础知识 https://www.kubernetes.org.cn/6730.html 2020-02-24 15:20 灵雀云 分类:容器 阅读( ...
- 容器技术之Docker基础入门
前文我们了解了下LXC的基础用法以及图形管理工具LXC WEB Panel的简单使用,有兴趣的朋友可以参考https://www.cnblogs.com/qiuhom-1874/p/12904188. ...
- Docker容器基础入门认知-网络篇
这篇文章中,会从 docker 中的单机中的 netns 到 veth,再到单机多个容器之间的 bridge 网络交互,最后到跨主机容器之间的 nat 和 vxlan 通信过程,让大家对 docker ...
- 3.云原生之Docker容器三大核心概念介绍
转载自:https://www.bilibili.com/read/cv15181760/?from=readlist docker search --no-trunc=false [镜像名称] #搜 ...
随机推荐
- TypeScript学习-TypeScript环境配置
http://blog.csdn.net/shi_weihappy/article/details/49332091
- python 添加 threadpool
操作系统: Ubuntu 10.04 python安装依赖的软件包: python 出现 ImportError: No module named ** 我这里出现了: ImportError: No ...
- sup inf max min
来自这里,觉得定义和举例都是最清楚的.http://www.math.illinois.edu/~ajh/347.summer14/completeness.pdf
- PowerDesigner生成sql脚本
1.打开PowerDesigner->New Project; 2.填写项目名称,选择文件的存放路径: 3.新建一个模型,New Model: 4.选择概念模型,填写模型名称: 5.选择enti ...
- 【读书笔记】你不知道的JavaScript(上卷)--作用域是什么
第一章 作用域 1.理解作用域 几个名词的介绍 引擎:从头到尾负责整个JavaScript程序的编译及执行过程 编译器:负责语法分析及代码生成器等脏活累活 作用域:负责收集并维护由所有声明的标识符(变 ...
- Django 入门案例开发
Django是一个重量级的web开发框架,它提供了很多内部已开发好的插件供我们使用:这里不去描述 Django直接进入开发过程. Django入门案例分两部分:一.开发环境的配置:二.业务需求分析. ...
- ssm整合-图片上传功能(转)
本文介绍 ssm (Spring+SpringMVC+Mybatis)实现上传功能. 以一个添加用户的案例介绍(主要是将上传文件). 一.需求介绍 我们要实现添加用户的时候上传图片(其实任何文件都可以 ...
- Linux Centos 通过虚拟用户访问FTP的配置
Linux Centos 通过虚拟用户访问FTP的配置 实验需求: 让下面4个虚拟用户使用系统用户ftpvu的权限来连接到Linux FTP服务器,并确保都锁定在 自己的虚拟用户目录,不能切换到其他目 ...
- python数据类型的转换
- php-5.6.26源代码 - opcode处理器的注入
.初始化 opcode处理器列表 // main实现在文件“php-5.6.26\sapi\cgi\cgi_main.c” int main(int argc, char *argv[]) { if ...