在Docker中快速部署Node.js应用的完整指南
本文详细介绍如何使用Docker快速部署Node.js Web应用。通过拉取国内镜像、编写Dockerfile构建镜像,并运行容器实现端口映射与后台服务启动,帮助开发者简化环境配置流程,实现应用的高效隔离与部署。
Docker部署Node.js应用指南
一、前言
部分开发者可能对Docker尚不熟悉。Docker是一款由Go语言开发的轻量级虚拟化技术项目,旨在实现应用的快速部署。它允许开发者将应用程序及其运行环境打包为一个Docker镜像(Image)。部署至服务器时,仅需下载该镜像即可运行程序,从而省去了反复安装各类依赖和配置环境的繁琐步骤,同时实现了应用程序之间的有效隔离。
环境准备与镜像拉取
二、实现准备
首先,我们将创建一个简单的Node.js Web应用程序,并基于此构建一个镜像。随后,利用该镜像运行一个容器,以此达成快速部署的目标。
受网络环境影响,本次演示中的Node.js镜像将从国内镜像库获取,而非Docker Hub官方仓库。
首先,从国内镜像网站拉取Node.js镜像。
docker pull hub.c.163.com/nce2/nodejs:0.12.2
下载完成后,查看本地镜像列表,确认镜像名称,以便后续步骤使用。

Node.js程序创建与配置
三、创建Node.js 程序
创建package.json文件,并填入相关信息及依赖配置。
vi package.json
{
"name": "webtest",
"version": "1.0.0",
"description": "Node.js on Docker",
"author": "lpxxn",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.13.3"
}
}创建server.js文件。
vi server.js编写一个基于Express框架的最简Web应用,返回“Hello world”响应。请注意,此处监听的是8888端口。
'use strict';
var express = require('express');
var PORT = 8888;
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
接下来介绍核心文件Dockerfile的创建,这是构建镜像所必需的文件。
vi DockerfileDocker引擎将依据Dockerfile的内容来构建镜像。此处先展示完整代码,随后逐行进行解析。
FROM hub.c.163.com/nce2/nodejs:0.12.2
# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service
# Bundle app source
COPY . /home/Service
RUN npm install
EXPOSE 8888
CMD [ "npm", "start" ]我们逐句对代码进行解释。
FROM hub.c.163.com/nce2/nodejs:0.12.2FROM指令指定构建镜像的基础源镜像,hub.c.163.com/nce2/nodejs:0.12.2即为该镜像的名称,也就是此前从国内服务器拉取的Image。若本地未存在该镜像,Docker会自动执行pull操作。
# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service第一句RUN指令用于在镜像内创建一个文件夹,用于后续存储代码。
第二句WORKDIR指令将上述创建的文件夹设置为工作目录。
# Bundle app source
COPY . /home/Service
RUN npm install第一句COPY指令将本机当前目录下的所有文件拷贝至镜像的/home/Service文件夹中。
第二句RUN指令使用npm安装应用所需的所有依赖包。
EXPOSE 8888由于Web应用监听8888端口,我们通过EXPOSE指令将该端口暴露给主机,从而允许外部访问Web服务。
CMD [ "npm", "start" ]此部分无需过多解释,它指明了运行npm start命令,该命令将执行node service.js来
启动我们的Web应用。
镜像构建与容器运行
五、构建Image
在Dockerfile文件所在的目录下,执行以下命令以构建镜像。
docker build -t mynodeapp .请注意命令末尾的点号“.”不可省略。

构建完成后,查看本地镜像列表以确认结果。

六、运行镜像
docker run -d -p 8888:8888 ac5-d参数表示容器将在后台运行,-p参数用于端口映射,将本机的8888端口映射到容器的8888端口,这样外网即可通过本机的8888端口访问Web服务。
后续的ac5为镜像ID,由于前3位字符已足以定位该镜像,故此处未列出完整ID。
通过docker ps命令查看刚运行的容器ID。

打印日志时,7370即为容器ID。与镜像ID类似,此处仅使用前4位字符已足够标识该容器,后续字符省略以简化操作。
docker logs 7350
若需进入容器内部,可执行以下命令。进入后可像操作普通Linux系统一样进行操作。如需退出,请执行exit命令。

服务测试与总结
七、测试
首先通过curl命令检查Web服务是否可访问。
curl -i localhost:8888
也可通过浏览器界面进行查看。

八、总结
本教程至此结束,希望读者已掌握相关技能。若有任何疑问或问题,欢迎留言交流。感谢大家对本站的支持。
NestJS 是什么?与 Express、Koa 的核心区别及选型建议
2026-11-05 13:46:41
生产环境升级 Node.js 的注意事项与兼容性测试策略
2026-11-05 09:19:24
nvm 常用命令详解:怎么平滑切换和升级 Node.js 版本
2026-11-04 09:02:34
JavaScript和JSP的根本区别:运行环境与执行机制解析
2026-11-03 23:30:18
使用nvm卸载指定版本Node.js并切换默认环境
2026-11-03 23:09:26
