发布网友 发布时间:2022-04-24 02:00
共1个回答
热心网友 时间:2022-04-23 05:41
我们建立的是一个node.js的web服务应用。我们需要在当前目录下建立如下三个文件。1).gitignorenode_moles/*2)package.json{"name":"docker-centos-hello","private":true,"version":"0.0.1","description":"Node.jsHelloworldapponCentOSusingdocker","author":"DanielGasienica","dependencies":{"express":"3.2.4"}}3)server.jsvarexpress=require('express'),app=express(),redis=require('redis'),RedisStore=require('connect-redis')(express),server=require('http').createServer(app);app.configure(function(){app.use(express.cookieParser('keyboard-cat'));app.use(express.session({store:newRedisStore({host:process.env.REDIS_HOST||'localhost',port:process.env.REDIS_PORT||6379,db:process.env.REDIS_DB||0}),cookie:{expires:false,maxAge:30*24*60*60*1000}}));});app.get('/',function(req,res){res.json({status:"ok"});});varport=process.env.HTTP_PORT||3000;server.listen(port);console.log('Listeningonport'+port);配置Dockerfile我们需要通过Dockerfile来配置我们的docker镜像。FROMubuntu:14.04MAINTAINERzengjinlongRUNapt-getupdate#InstallRedisRUNapt-get-y- installpythonredis-serverRUNapt-get-y- installwget#InstallNodeRUNcd/opt&&\wgethttp://nodejs.org/dist/v0.10.33/node-v0.10.33-linux-x.tar.gz&&\tar-xzfnode-v0.10.33-linux-x.tar.gz&&\mvnode-v0.10.33-linux-xnode&&\cd/usr/local/bin&&\ln-s/opt/node/bin/*.&&\rm-f/opt/node-v0.10.33-linux-x.tar.gz#SettheworkingdirectoryWORKDIR/srcjCMD["/bin/bash"]有了Dockerfile之后,就可以通过dockerbuild来建立我们的镜像。dockerbuild-tminimicall/node_web:0.1.这里需要说明的是,你需要灵活的根据你的ubuntu真实的环境来变化中间的指令。例如,当我们第一次执行的时候,告诉我找不到pythonredis-server,我想应该是我的apt源太out了,所以,我加了RUNapt-getupdate.就解决了这个问题。当我wget的时候,说没有这个指令,那么我就得安装wget.而nodejs的地址,也是我去从nodejs的官网查找的。所以碰到问题,具体问题具体分析。查看我们建立的镜像。micall@micall-ThinkPad:~/docker/nodejs_web_app$sudodockerimagesREPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZEminimicall/node_web0.1730770dff17f6minutesago268.7MBcentoscentos670441cac1ed52weeksago215.8MBubuntu14.045506de2b3b4weeksago199.3MB启动我们的镜像:sudodockerrun-i-t--rm\>-p3000:3000\>-v`pwd`:/src\>minimicall/node_web:0.1这时候我们已经进入到了这个镜像启动的容器里面了。root@d80a2ed6b4c0:/src#执行下列命令root@d80a2ed6b4c0:/src#npminstall--quiet>/dev/nullnpmWARNengineformidable@1.0.13:wanted:{"node":"/dev/nullroot@d80a2ed6b4c0:/src#lsDockerfileDockerfile~index.js~package.jsonserver.jssrcDockerfile.centosindex.jsnode_molespackage.json~server.js~root@d80a2ed6b4c0:/src#nodemonserver.js22Nov14:37:31-[nodemon]v1.2.122Nov14:37:31-[nodemon]torestartatanytime,enter`rs`22Nov14:37:31-[nodemon]watching:*.*22Nov14:37:31-[nodemon]starting`nodeserver.js`Listeningonport3000这个时候用浏览器打开:http://localhost:3000/,会的到如下结果。{"status":"ok"}