容器基础(一): 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 [镜像名称] #搜 ...
随机推荐
- window/win7/wamp下安装Xdebug
1.写一个php文件,输出phpinfo(); 然后把该页面Ctrl+A全选,然后贴到http://xdebug.org/wizard.php这个地址的文本框里,他会自动检查你的配置,然后告诉你用哪个 ...
- 2018.7.15 解决css中input输入框点击时去掉外边框方法
.input_css{ background:no-repeat 0 0 scroll #EEEEEE; border:none; outline:medium; }
- idea中不重启服务器更改代码(使用jrebel)
http://139.199.89.239:1008/88414687-3b91-4286-89ba-2dc813b107ce 第一步 第二步:下载jrebel 第三步(这里有些有有些没有) 下载完后 ...
- 基于建模的视觉定位(SFM-Based Positioning)
具体方法来自我参与的这篇journal: Vision-Based Positioning for Internet-of-Vehicles, IEEE Transactions on Intelli ...
- 重定向跳出父Frame
当session过期后可以用过滤器来设置重定向页面 代码如下: public class ActionFilter extends HttpServlet implements Filter {pri ...
- git 简单使用(待完善)
git是一个分布式版本控制器,简单来说就是可以记录每次代码的修改和提交,方便我们查看修改记录和版本的回退 工作流程 基本概念 仓库 git 是一个分布式版本控制器,其单位就是仓库,每个仓库就是当前gi ...
- iOS提示框,为什么你应该使用 MBProgressHUD?
这是一篇带有一定笔者主观感情色彩的比较文章.文章着重对比github上最流行的两个iOS进度提示控件 MBProgressHUD 与 SVProgressHUD的各自优劣,来帮助初学者找到一个适合的i ...
- Fetch 头像剪切修改
前言:通过Input file upload 图片到canvas 中进行剪裁,react 可以引入react-avatar-editor对图片进行剪裁 react-avatar-editor的使用 & ...
- 泉五培训Day1
T1 树学 题目 [问题描述] 给定一颗 n 个点的树,树边带权,试求一个排列 P,最大化下式 其中,calc(a, b)表示树上由a到b经过的最大边权. [输入格式] 第一行一个整数 n,表示点数下 ...
- BFS算法入门--POJ3984
迷宫问题–POJ3984 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22008 Accepted: 12848 Descri ...