美文网首页
docker下的nodejs

docker下的nodejs

作者: krock01 | 来源:发表于2017-08-10 10:43 被阅读22次

编辑于2016年,观看别人的博客后的笔记,原作者要是看到请联系我注明出处

简单的docker 下nodejs web应用

此应用用于开发环境

第一步 :创建问一个新的文件夹,并在其中创建package.json 和server.js

package.json
{"name": "docker_web_app","version": "1.0.0","description": "Node.js on Docker","author": "First Last <first.last@example.com>","main": "server.js","scripts": {"start": "node server.js"},"dependencies": {"express": "^4.13.3"}}
server.js
'use strict';const express = require('express');// Constantsconst PORT = 8080;// Appconst app = express();
app.get('/', function (req, res) {
  res.send('Hello world\n');});

app.listen(PORT);
console.log('Running on http://localhost:' + PORT);

第二步:创建一个dockerfile

touch Dockerfile

获取nodejs 版本为agon

FROM node:argon

创建应用的镜像空间文件夹

# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

移动package.json /usr/src/app/ 并执行npm install

# Install app dependenciesCOPY package.json /usr/src/app/
RUN npm install

绑定你的源代码到docker镜像

# Bundle app sourceCOPY . /usr/src/app

绑定端口8080 使其成为docker的映射

EXPOSE 8080

最后设置命令 npm start

CMD ["npm","start"]

文件内容如下

FROM node:argon

# Create app directoryRUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# Install app dependenciesCOPY package.json /usr/src/app/
RUN npm install

# Bundle app sourceCOPY . /usr/src/app

EXPOSE 8080
CMD [ "npm", "start" ]

构建镜像

-t 标记你的镜像为什么名称,最后一个.是当前目录

$ docker build -t <your username>/node-web-app .

使用docker images查看

$ docker images

# Example
REPOSITORY                      TAG        ID              CREATED
node                            argon      539c0211cd76    3 weeks ago
<your username>/node-web-app    latest     d64d3505b0d2    1 minute ago

执行镜像

使用-d运行可以使你的应用后台运行 -p把私有的端口映射为公共端口

$ docker run -p 49160:8080 -d <your username>/node-web-app

使用以下命令查看

# Get container ID
$ docker ps# Print app output
$ docker logs <container id># Example
Running on http://localhost:8080

如果你想进入应用目录环境

# Enter the container
$ docker exec -it <container id> /bin/bash

测试

获取docker的端口

$ docker ps# Example
ID            IMAGE                                COMMAND    ...   PORTS
ecce33b30ebf  <your username>/node-web-app:latest  npm start  ...   49160->8080

使用curl(如果没有安装:sudo apt-get install curl)

$ curl -i localhost:49160

HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
Content-Length: 12
Date: Sun, 02 Jun 2013 03:53:22 GMT
Connection: keep-alive

Hello world

相关文章

网友评论

      本文标题:docker下的nodejs

      本文链接:https://www.haomeiwen.com/subject/hyzcrxtx.html