Linux香港服务器Docker容器化部署Node.js应用教程
文章分类:技术文档 /
创建时间:2025-09-04
在Linux香港服务器上通过Docker实现Node.js应用的容器化部署,是提升应用管理效率的实用方案。本文从准备工作到常见问题,手把手教你完成全流程操作。
准备工作:基础环境搭建
开始部署前需确认两项核心准备:一是拥有可稳定访问的Linux香港服务器(推荐Ubuntu或CentOS系统);二是完成Docker(容器化平台,能打包应用及依赖为独立运行环境)和Docker Compose(多容器管理工具)的安装。
Docker安装命令:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Docker Compose安装(以1.29.2版本为例):
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
步骤一:创建Node.js基础应用
在服务器终端执行以下命令创建项目目录并进入:
mkdir node-app
cd node-app
创建`package.json`管理项目依赖(内容如下):
{
"name": "node-app",
"version": "1.0.0",
"description": "A simple Node.js app",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"dependencies": {
"express": "^4.17.1"
}
}
创建应用入口文件`index.js`:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.listen(port, () => {
console.log(`App listening at http://localhost:${port}`);
});
步骤二:编写Dockerfile打包镜像
在`node-app`目录新建`Dockerfile`,内容逐行解析:
基于Node.js 14官方镜像构建
FROM node:14
设置容器内工作目录
WORKDIR /app
先复制依赖文件加速镜像构建(利用Docker缓存)
COPY package*.json ./
安装项目依赖
RUN npm install
复制全部应用代码
COPY . .
声明容器暴露3000端口
EXPOSE 3000
定义容器启动命令
CMD ["npm", "start"]
步骤三:构建并运行Docker容器
在项目目录执行镜像构建命令(-t指定镜像名为node-app):
docker build -t node-app .
构建完成后启动容器(-p将服务器3000端口映射到容器3000端口):
docker run -p 3000:3000 node-app
此时访问`http://香港服务器公网IP:3000`应看到"Hello, World!"。
进阶:用Docker Compose简化管理
创建`docker-compose.yml`文件统一管理服务:
version: '3'
services:
node-app:
# 指定当前目录为构建上下文
build: .
# 端口映射配置
ports:
- "3000:3000"
通过以下命令后台启动容器(-d表示守护进程模式):
docker-compose up -d
常见问题与解决思路
- 镜像构建失败:检查网络是否能访问npm仓库(可尝试切换淘宝npm源);确认package.json依赖版本兼容Node.js 14。
- 容器启动后无法访问:用`docker ps`确认容器状态,若显示Exited需通过`docker logs 容器ID`查看错误日志;检查服务器防火墙是否放行3000端口(如`ufw allow 3000`)。
- 依赖安装缓慢:在Dockerfile中添加`RUN npm config set registry https://registry.npmmirror.com`切换为国内镜像源。
通过这套流程,你可以在Linux香港服务器上快速实现Node.js应用的容器化部署,不仅简化了环境配置,还能通过Docker的轻量特性提升资源利用率。后续扩展时,只需修改Dockerfile或docker-compose.yml即可完成版本更新,大幅降低运维成本。