程序员怎么赚钱 会哪些 赚得多 docker

您当前位置: >
> Docker已扎根新一代PaaS
Docker已扎根新一代PaaS
来源:程序员人生&& 发布时间: 阅读次数:785次
【编者按】第三代PaaS浪潮赶在了Docker流行时期,虽然基于Docker的PaaS还处于早期阶段,但是其敏捷性和灵活性已经得到了广大新技术开发者的喜爱,同时它还有助于促进PaaS吸引更大规模的用户。近日,Nancy
Gohring在The New Stack上分析了这一现象。
以下为译文:
PaaS已经出现了数年时间,第一批是Azure和Heroku等公用云服务,之后出现的Cloud Foundry和OpensShift允许用户建立自己的PaaS,包括了内部数据中心以及云环境。现在,第三代PaaS浪潮正在到来。
Deis、Flynn、Tsuru、Dawn和Octohost新贵和第二代PaaS主力(如Cloud Foundry和OpenShift)有一些共同点――开源,允许用户运行自己的PaaS。不过,这些新项目有一点共性使他们可能足以敌对一些大竞争者,基于Docker搭建。
以Deis为例。OpDemand是一家为Deis提供支持的公司,其CTO Gabriel Monroy表示,Deis的开发者最初提供很类似于AWS
Cloud Formation的服务。“我们总是听到类似的事情――我真正想要的是Heroku,但我希望它在我自己的服务器或者我自己的EC2实例上。’”
Deis的创始者开始努力回应这些需求。“最初有很多凌乱的原型设计,”他说:“不过Docker出现后,原型的实现变成可能。”Deis和Flynn不是唯一的搭建在容器上的技术。OpenShift和Cloud
Foundry也不是。
Home Grown
这一代有很多PaaS是纯基于Docker的,而一些大型PaaS项目也尝试转型并利用Docker的优势。例如,RedHat的OpenShift策略总监Krishnan
Subramanian说Red Hat决定拥抱Docker,而不是继续优化其自己的容器技术。
Cloud Foundry的位置有点模糊。Cloud Foundry也在采用Docker,但是一些人指责Docker的实施,其使用自家的容器Warder和Docker的部分。尽管如此,Cloud
Foundry也有一些第三方的Docker实施。并且最近Docker成为Could Foundry基金会的一员,因此将来会有更多官方的活动。
除Docker外,一些新技术的开发者说这些新技术比一些大产品更敏捷、更灵活。“Cloud Foundry是一个大企业规模的行业产品,有OpenStack一样规格和组织的项目。这个生态圈中最主要的影响来自行业巨头(大企业,大公司),他们主宰对话和功能设置。”Flynn的创始人之一Jonathan
Rudenberg如是说。
Monroy说,因为Flynn和Deis的技术“重量”轻,所以与Cloud Foundry或OpenShift平台相比这些技术更容易定制。“尽管它们表面上是开源的,但是将变化应用到自己的环境往往并不灵活,也不实际。”他说。
Pivotal的高级技术总监Andrew Clay Shafer认为,一些评论是有效的,但使用如Cloud Foundry类的已经搭建好的平台也有很多优点。他说:“Cloud
Foundry有一些特性,不好设置。因此如果你把他们的工作与Flynn和Deis的比较,你会发现其实他们更容易设置。”不过,他也表示,这些简易是有代价的。
如果你的企业想在一个有多个业务单元和兼容性需求的多租户环境下运行1万个app,那么你需要的是Cloud Foundry。替代的是选用其它的和从头搭建Cloud&Foundry。
不过新一代PaaS技术并没有追求这类企业用户。Monroy说Deis的目标客户是一系列相信可以通过他们的基础设施实现有竞争力优势的A轮创业企业,这些企业希望以更少的硬件完成更多的工作,并可以迅速扩展。
&“当你将Deis与Cloud Foundry对比时,密度的差异真的很明显。”Monroy说。他还说,与一些有竞争力的PaaS技术相比,使用Deis需要更少的服务器。
最近Alex Williams在一场Google活动采访了Monroy,后者谈到了Docker的带来对PaaS的影响,他还解释了以etcd作为新环境基础的新兴生态系统的关联。
此外,新PaaS技术的开发者希望他们的用户规模足够大。Rudenberg 说:“这一代的PaaS侧重于规模。巨头Google和Facebook定期的发布论文,共享他们是如何运行世界上最大的web前端系统的细节。开源PaaS项目现在将这些技术带给大众。例如,Flynn开始实施最近Google的一篇论文的部分。”
尽管听起来好像如OpenShift和Cloud Foundry的大项目正在努力追赶Docker,事实上是,大部分基于Docker的PaaS还处于早期阶段。例如,Deis还没有官方发布一个稳定版本。Monroy说Deis的使用者是对早期软件有着高度忍耐性的公司。目前Flynn只发布了一个预览版本。此外,尽管现在Docker非常流行,但是这并不保证Docker将是满足所有人需求的唯一容器。实际上,Flynn最近开始支持其他容器了。Rudenberg说:“现在我们有一些其它稳定选项供用户选择。”
新PaaS技术的发展还处于早期,每种PaaS技术的实施和使用情况都略有不同,在未来的几个月里这一领域还将会发生很多变化。
原文链接:
Docker is Driving a New Breed of PaaS(翻译/蔡仁君 责编/仲浩)
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
------分隔线----------------------------
------分隔线----------------------------
积分:4192Hello,Docker - 为程序员服务
Hello,Docker
is an open-source project to easily create lightweight, portable, self-sufficient containers from any application.
(略),见
ubuntu安装很容易,不过要注意内核版本,至少3.8以上。安装成功后,使用lxc-checkconfig检查下LXC配置是否正常。
避免sudo docker
docker命令跟默认docker daemon创建的unix socket通讯都需要sudo权限,这可以通过创建docker组来解决。
sudo groupadd docker
#将当前用户加入docker组
sudo gpasswd -a ${USER} docker
#重启docker服务
sudo service docker restart
这样一来,docker命令的执行就不再需要sudo权限。如果没有生效,退出重新登陆即可。
hello world
跑个ubuntu的image试试看:
docker pull ubuntu
docker run ubuntu /bin/echo hello world
这将启动一个container加载ubuntu image并执行echo程序,打印hello world,然后退出。”docker ps”可查看container列表。
lxc-start: No cgroup mounted on the system
这个错误是因为cgroup没有mount,建议mount到/sys/fs/cgroup目录。首先编辑/etc/fstab文件,加入下面这行配置:
/sys/fs/cgroup
接下来创建目录,并mount:
sudo mkdir -p /sys/fs/cgroup
sudo mount /sys/fs/cgroup
创建一个运行Node.js应用的ubuntu image
官方给的例子是创建centos上运行node.js应用,具体看。
下面尝试用ubuntu创建下。
Node.js应用
创建一个src目录,存放node.js应用源码和配置
touch src/package.json
touch src/index.js
其中package.json内容:
"name": "docker-ubuntu-hello",
"private": true,
"version": "0.0.1",
"description": "Node.js Hello World app on ubuntu using docker",
"author": "Daniel Gasienica &daniel@gasienica.ch&, Dennis&&",
"dependencies": {
"express": "3.2.4"
index.js就是使用express框架渲染首页hello world:
var express = require('express');
// Constants
var PORT = 8080;
var app = express();
app.get('/', function (req, res) {
res.send('Hello World\n');
app.listen(PORT)
console.log('Running on http://localhost:' + PORT);
创建Dockerfile
Dockerfile文件配置image众多参数,例如parent image是什么,执行哪些安装命令,拷贝应用文件,导出TCP端口等等。与src目录统计创建文件名为Dockerfile,内容如下:
FROM ubuntu:12.10
RUN apt-get update
RUN apt-get install -y python-software-properties python g++ make software-properties-common
RUN add-apt-repository ppa:chris-lea/node.js
RUN apt-get update
RUN apt-get install -y nodejs
ADD ./src /src
RUN cd / npm install
CMD ["node", "/src/index.js"]
我们采用官方提供的ubuntu 12.10的image做为os版本,接下来通过RUN指令安装node.js,然后用ADD指令将src目录拷贝到image的/src目录下,并在/src目录下执行npm install安装node.js依赖包,导出应用监听的8080端口到container外,最终通过CMD指令启动node.js应用。
关于Dockerfile指令参考。
执行下列指令:
docker build -t dennis/node-js .
通过-t选项为这个image打上一个tag,在构建完成后,通过docker images列出所有的image的时候,可以看到你刚创建的image: dennis/node-js
运行container并测试
有了image,就可以从这个image启动一个container来运行node.js应用:
docker run -p
-d dennis/node-js
我们将container内node.js应用监听的8080端口通过-p选项桥接到宿主机器(host machine)的47516端口,也就是说你可以通过47516端口能问到容器内的node.js应用。尝试下:
curl -X GET http://localhost:47516/
输出hello world。
本例子的源码已经放到。
原文地址:, 感谢原作者分享。
您可能感兴趣的代码个人电脑是否适合通过Hyper-V虚拟化安装Docker或其他Linux系统用来做开发?
又想用Windows,又不想装双系统,有想要用Linux下方便的开发环境(有很多软件包在Linux更好配置一些)。需求大致是上面这些。现在的想法是在用Hyper-V上装Docker,部署一个配置好开发环境的Linux,然后通过共享目录或者远程执行(IDE支持)的一些方式在容器中运行。不知道这样的方式是否可行?用起来会不会很别扭?补充1:主要需要一个Linux环境做运行环境。开发还是在windows上搞,然后程序通过IDE的支持在remote(虚拟机)上执行。所以不需要图形界面。
按时间排序
千万千万不要在个人机器上面用HyperV,各种离奇的bug,甚至无限蓝屏,各种网卡,显卡驱动bug.还是老老实实用VirtualBox或者VM Player
如大家所说:开发环境要成熟方案就用 vagrant。要流行就用 docker。目前 Docker 官方出品了跨平台开箱即用产品如 Kitematic,Docker Machine 。Docker 可以完全统一开发环境、运行环境,是以后的发展趋势。
Hyper-V没有用过,但在一般主流的Laptop上用virutual-box上做这样的开发没有任何问题。
请使用成熟方案 vagrant。
Docker需要运行在Linux平台上,因此首先你得装一个Linux。主流的用Ubuntu和coreos开发docker的多一点。
做测试没问题,跑生产那是分分钟卡成屎,原因写在【组成原理】中。
单有hyper v不装linux用不了docker的吧?
服务器虚拟化已经很成熟,家用机虚拟化前途漫漫。如果你虚拟化出来的系统,当服务器系统用(强化运算、存储、网络,弱化显示、外设),那就很合适。
1,既然用了虚拟机又何必用docker,生产环境这么用是方便运维,个人完全没必要。2,楼上说的对,虚拟机目前图形能力比较弱,特别是hyper-v还不支持gpu passthrough和grid vgpu,还是抛弃gui用ssh吧,当然初学者可能不太习惯。3,用了虚拟机也有好处,你不用头疼驱动的事。一些网卡和显卡的驱动即使老手也头疼。====update:经评论区提醒win10的hyper-v已经支持gpu passthrough,题主如果是双显卡的话,可以试着直通一个不使用的显卡,应该对第二点问题会有改善。
我觉得不适合,我在hyper-v里面装了Fedora 22,kde桌面用着很卡,当然如果用ssh连进去还是很快的
等你发现不行的时候再根据遇到的问题找解决办法吧. 现在什么问题都没遇到, 都不知道解决什么...
取决于你用它来做什么
对于一些简单的开发,比如论坛、站点、社区、app初步开发,完全没有问题。内存大一点即可。但如果你想玩大数据,还是找一台好一点的电脑做服务器吧。
已有帐号?
社交帐号登录
无法登录?
社交帐号登录主题信息(必填)
主题描述(最多限制在50个字符)
申请人信息(必填)
申请信息已提交审核,请注意查收邮件,我们会尽快给您反馈。
如有疑问,请联系
CSDN &《程序员》编辑/记者,我的邮箱
全栈攻城狮不知道是怎么炼成的
人生得意须尽欢,莫使金樽空对月。
Docker技术在ruby社区是有影响力的,我所知道的一些创业团队很早就在运用它来解决环境管理、持续集成以及部署的问题了。但是,也有一些同学尚未注意到这个技术,或者了解过后认为它不是很重要,所以我想讨论一下Docker对Ruby系技术的帮助。

我要回帖

更多关于 赚够钱就嫁程序员 的文章

 

随机推荐