使用以下命令部署Node.js应用程序

・4 分钟阅读

本文会向你展示如何在Docker容器中部署你的node应用程序。

注意:本教程假设你已经安装了Docker,并且准备好使用。

步骤1:创建Node应用程序

创建一个名为src的目录,我们会使用那个目录,创建一个名为src/package.json的文件,其中包含以下内容:


{
"name":"hello_world",
"private": true,
"version":"0.0.1",
"description":"Hello world Example",
"author":"",
"dependencies": {
"express":"3.2.4"
 }
}

现在创建一个包含以下内容的src/index.js


var express = require('express');
var app = express();
app.get('/', function (req, res) {
 res.send('Hello from Dockern');
});

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

创建这两个文件后,就可以执行下一步了。

步骤2:创建Dockerfile

通过"dockerfile",你可以根据你在其中提供的指令集构建和部署Docker镜像,创建名为Dockerfile的文件,并将它填充为以下内容:


FROM centos:latest
MAINTAINER Name Here <username@localhost>
RUN rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
RUN yum install nodejs npm -y 
COPY ./src /opt/src
RUN cd /opt/src; npm install
EXPOSE 8080
CMD ["node","/opt/src/index.js"]

说明:

 
FROM centos:latest

 

这会使用一个名为centos的图像,如果主机上没有可用镜像,Docker会从它存储库中提取一个。


MAINTAINER Name Here <username@localhost>

此指令允许你为正在创建的图像设置作者。


RUN rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
RUN yum install nodejs npm -y
…
RUN cd /opt/src; npm install

"RUN将执行给定的shell命令,在本例中它会下载EPEL版本的RPM并安装它并从它存储库中安装nodejs和npm,在下一个操作之后,它会cd到项目目录,并且运行npm install为你的应用程序安装依赖项。

 
COPY ./src/opt/src

 

将目录(和文件)从主机复制到容器中。

 
EXPOSE 8080

 

开放8080端口供外界使用。


CMD ["node","/opt/src/index.js"]

CMD为容器提供默认执行。

一旦你完全创建了上述文件,你就可以继续下一步了。

步骤3:生成镜像

若要生成镜像,请运行以下命令:


docker build -t name/application .

这会创建一个带有name/application存储库名称的镜像,如果没有错误,你可以继续下一步。

步骤4:部署和测试应用程序

设置好所有内容后,可以运行以下命令运行镜像:


docker run -p 49160:8080 -d name/application

要测试应用程序,请从主机运行以下命令:


curl http://172.17.42.1:49160/ 

如果你看到Hello from Docker,那么你已经成功部署了Docker镜像,如果你想用浏览器测试它,请访问浏览器(相应替换IP地址)中的http://[SERVER_IP]:49160,并将看到相同的消息。

Yanyan profile image