成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【Docker】Docker是如何部署一個(gè)web應(yīng)用的

云計(jì)算
本文的目標(biāo)是建立一個(gè)Docker web app。這樣,你就可以直觀的感受,docker是如何部署一個(gè)web應(yīng)用。

在繼《阿里云部署Docker》之后,我決定系統(tǒng)的出一系列《Docker從入門到精通》的深度記錄文章,這源于有一天圖靈出版社的一個(gè)編輯聯(lián)系我,問我有沒有興趣寫Docker方面的書籍進(jìn)行出版。

本文的目標(biāo)是建立一個(gè)Docker web app。這樣,你就可以直觀的感受,docker是如何部署一個(gè)web應(yīng)用。

首先,我們建立一個(gè)空目錄來存放我們需要的文件。

我們建立的是一個(gè)node.js的web服務(wù)應(yīng)用。我們需要在當(dāng)前目錄下建立如下三個(gè)文件。

1).gitignore

  1. node_modules/*  

2)package.json

  1.   "name""docker-centos-hello"
  2.   "private"true
  3.   "version""0.0.1"
  4.   "description""Node.js Hello world app on CentOS using docker"
  5.   "author""Daniel Gasienica <daniel@gasienica.ch>"
  6.   "dependencies": { 
  7.     "express""3.2.4" 
  8.   } 

3)server.js

  1. var express = require('express'), 
  2. app = express(), 
  3. redis = require('redis'), 
  4. RedisStore = require('connect-redis')(express), 
  5. server = require('http').createServer(app); 
  6.  
  7. app.configure(function() { 
  8. app.use(express.cookieParser('keyboard-cat')); 
  9. app.use(express.session({ 
  10. store: new RedisStore({ 
  11. host: process.env.REDIS_HOST || 'localhost'
  12. port: process.env.REDIS_PORT || 6379
  13. db: process.env.REDIS_DB || 0 
  14. }), 
  15. cookie: { 
  16. expires: false
  17. maxAge: 30 * 24 * 60 * 60 * 1000 
  18. })); 
  19. }); 
  20.  
  21. app.get('/', function(req, res) { 
  22. res.json({ 
  23. status: "ok" 
  24. }); 
  25. }); 
  26.  
  27. var port = process.env.HTTP_PORT || 3000
  28. server.listen(port); 
  29. console.log('Listening on port ' + port); 

配置Dockerfile

我們需要通過Dockerfile來配置我們的docker鏡像。

  1. FROM ubuntu:14.04 
  2. MAINTAINER zengjinlong <470910357@qq.com> 
  3.  
  4. RUN apt-get update 
  5.  
  6. #Install Redis 
  7. RUN apt-get -y -qq install python redis-server 
  8.  
  9. RUN apt-get -y -qq install wget 
  10.  
  11. #Install Node 
  12. RUN cd /opt && \ 
  13. wget http://nodejs.org/dist/v0.10.33/node-v0.10.33-linux-x64.tar.gz && \ 
  14. tar -xzf node-v0.10.33-linux-x64.tar.gz && \ 
  15. mv node-v0.10.33-linux-x64 node && \ 
  16. cd /usr/local/bin && \ 
  17. ln -s /opt/node/bin/* . && \ 
  18. rm -f /opt/node-v0.10.33-linux-x64.tar.gz 
  19.  
  20. #Set the working directory 
  21. WORKDIR /src 
  22. CMD ["/bin/bash"

有了Dockerfile之后,就可以通過docker build來建立我們的鏡像。

  1. docker build -t minimicall/node_web:0.1 . 

 這里需要說明的是,你需要靈活的根據(jù)你的ubuntu真實(shí)的環(huán)境來變化中間的指令。例如,當(dāng)我們***次執(zhí)行的時(shí)候,告訴我找不到python redis-server,我想應(yīng)該是我的apt 源太out了,所以,我加了RUN apt-get update.就解決了這個(gè)問題。

當(dāng)我wget的時(shí)候,說沒有這個(gè)指令,那么我就得安裝wget.而nodejs的地址,也是我去從nodejs的官網(wǎng)查找的。所以碰到問題,具體問題具體分析。

查看我們建立的鏡像。

  1. micall@micall-ThinkPad:~/docker/nodejs_web_app$ sudo docker images 
  2.  
  3. REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE 
  4. minimicall/node_web 0.1 730770dff17f 6 minutes ago 268.7 MB 
  5. centos centos6 70441cac1ed5 2 weeks ago 215.8 MB 
  6. ubuntu 14.04 5506de2b643b 4 weeks ago 199.3 MB 

啟動我們的鏡像:

  1. sudo docker run -i -t --rm \ 
  2. > -p 3000:3000 \ 
  3. > -v `pwd`:/src \ 
  4. > minimicall/node_web:0.1 

這時(shí)候我們已經(jīng)進(jìn)入到了這個(gè)鏡像啟動的容器里面了。

  1. root@d80a2ed6b4c0:/src# 

執(zhí)行下列命令

  1. root@d80a2ed6b4c0:/src# npm install --quiet > /dev/null 
  2. npm WARN engine formidable@1.0.13: wanted: {"node":"<0.9.0"} (current: {"node":"0.10.33","npm":"1.4.28"}) 
  3. root@d80a2ed6b4c0:/src# npm install -g nodemon --quiet > /dev/null 
  4. root@d80a2ed6b4c0:/src# ls 
  5. Dockerfile Dockerfile~ index.js~ package.json server.js src 
  6. Dockerfile.centos index.js node_modules package.json~ server.js~ 
  7. root@d80a2ed6b4c0:/src# nodemon server.js 
  8. 22 Nov 14:37:31 - [nodemon] v1.2.1 
  9. 22 Nov 14:37:31 - [nodemon] to restart at any time, enter `rs` 
  10. 22 Nov 14:37:31 - [nodemon] watching: *.* 
  11. 22 Nov 14:37:31 - [nodemon] starting `node server.js` 
  12. Listening on port 3000 

這個(gè)時(shí)候用瀏覽器打開:http://localhost:3000/,會的到如下結(jié)果。

  1. "status""ok" 

原文出自:http://blog.csdn.net/minimicall/article/details/41391241

責(zé)任編輯:Ophira 來源: MiniMicall的專欄
相關(guān)推薦

2014-05-26 09:13:46

DockerPython

2024-03-28 08:36:57

2015-01-20 13:46:31

Java EEDockerDocker部署

2020-10-11 20:54:39

Python開發(fā)Docker

2022-06-28 12:35:21

DockerPython

2020-08-28 13:27:25

Docker Node應(yīng)用

2020-12-04 18:44:29

KubernetesHTTPS Wordpress

2019-11-07 14:00:36

MySQL數(shù)據(jù)庫SQL

2015-09-01 09:53:04

Java Web開發(fā)者

2021-08-10 07:41:24

JavaDocker鏡像

2022-11-01 07:23:55

Dockernetcore程序

2023-09-21 08:00:00

ChatGPT編程工具

2015-10-12 16:45:26

NodeWeb應(yīng)用框架

2023-05-10 08:05:41

GoWeb應(yīng)用

2024-01-01 08:46:32

2023-11-16 08:01:31

2017-12-12 15:24:32

Web Server單線程實(shí)現(xiàn)

2014-10-15 11:01:02

Web應(yīng)用測試應(yīng)用

2024-01-17 08:01:28

Docker語法命令

2020-08-25 07:48:17

Kubernetes集群系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美最猛性xxxxx亚洲精品 | 91久久久久久久久久久久久 | 久久精品国产一区二区三区 | 欧美日韩在线免费 | 国产美女精品视频 | 欧美视频免费在线 | 中文字幕av网址 | 成人亚洲精品 | 成人在线播放网址 | 亚洲国产视频一区二区 | www.国产| 一区二区三区视频在线 | 最近中文字幕免费 | 成人精品在线观看 | 视频一区在线观看 | 中文字幕精品视频 | 国产精品日韩在线 | 国产精品免费一区二区三区四区 | 中文字幕在线观看一区二区 | jdav视频在线观看免费 | 超级碰在线 | 成人国产在线视频 | 成人在线视频免费观看 | 亚洲高清视频一区二区 | 国产精品呻吟久久av凹凸 | 亚洲精品自在在线观看 | 噜噜噜色网 | 亚洲福利网| 日日操天天射 | 欧美精品一区久久 | 欧美成年网站 | 中文字幕视频在线看5 | 狠狠操狠狠搞 | 亚洲一区二区电影网 | 成人av一区二区三区 | 欧美国产精品一区二区三区 | 日日骚网 | av中文字幕在线 | 亚洲欧洲中文日韩 | 国产永久免费 | 欧美激情一区二区三区 |