容器基础(一): 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 [镜像名称] #搜 ...
随机推荐
- 2018.8.4session的removeAttribute()和invalidate()的区别
session的removeAttribute()和invalidate()的区别 session.invalidate()是销毁跟用户关联session,例如有的用户强制关闭浏览器,而跟踪用户的信息 ...
- 前端HTML之表单
1.列表标签 1.1无序列表<ul>,当中每一层都是<li> <ul> <li>张三</li> <li>李四</li ...
- CBCGPImage的GetSize的问题及解决方法
BCGControlBar Pro for MFC 25.10是目前(2018-07-16)网上能够找到的最新能够使用的版本,我配合Visual Studio 2010使用.在单文档MFC程序的视图中 ...
- linux shell 部分问题解决方法
1. 判断shell里判断字符串是否包含某个字符 a. 可以用正则式匹配符号 “=~” 举例:str="this is a string" 要想在判断str中是否含有 ...
- 通过Samba实现Linux与Windows间的文件共享
Samba Samba,是用来让Linux系列的操作系统与Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网 ...
- linux系统ext文件系统知识
ext2文件系统细节 我们都知道,操作系统中的数据分为文件内容和文件属性两部分,其中文件内容就是文件的实体数据,而文件属性就是文件类型.权限.属主.修改时间等信息.操作系统会将上述文件的内容放入磁盘文 ...
- linux 安装nginx yum
本分类下有一个环境一键安装.那这背后发生了什么呢?咱们手动使用源码进行安装.1.首先保证有一个能联网的centos.2.百度 ningx 官网 点download http://nginx.or ...
- Apache安装之后,在浏览器输入ip无法访问
博主本来在linux下面配置安装了apache,然后用浏览器输入ip却无法访问 就一直在想是不是dns无法解析的问题,最后才发现原来是防火墙的原因, 在linux下面 service iptables ...
- POJ 3484 二分
Showstopper Description Data-mining huge data sets can be a painful and long lasting process if we a ...
- POJ 2079 最大三角形面积(凸包)
Triangle Description Given n distinct points on a plane, your task is to find the triangle that have ...