在轻量应用服务器上如何部署Node.js和Docker环境?

在轻量应用服务器(如腾讯云轻量应用服务器、阿里云轻量服务器等)上部署 Node.js 和 Docker 环境,可以按照以下步骤操作。以 Ubuntu 系统为例:


一、准备工作

  1. 登录服务器
    使用 SSH 登录你的轻量应用服务器:

    ssh root@your_server_ip

    (替换 your_server_ip 为你的服务器公网 IP)

  2. 更新系统包

    sudo apt update && sudo apt upgrade -y

二、安装 Node.js

推荐使用 NodeSource PPA 安装最新稳定版 Node.js。

  1. 安装依赖

    sudo apt install -y curl gnupg
  2. 添加 NodeSource 仓库(以 Node.js 18.x 为例)

    curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
  3. 安装 Node.js 和 npm

    sudo apt install -y nodejs
  4. 验证安装

    node --version
    npm --version

三、安装 Docker

  1. 卸载旧版本(如有)

    sudo apt remove docker docker-engine docker.io containerd runc
  2. 安装依赖包

    sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
  3. 添加 Docker 官方 GPG 密钥

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  4. 添加 Docker 仓库

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. 更新包索引并安装 Docker

    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io
  6. 验证 Docker 安装

    sudo docker --version
    sudo docker run hello-world
  7. (可选)将当前用户加入 docker 组,避免每次使用 sudo

    sudo usermod -aG docker $USER

    退出并重新登录 SSH,使组权限生效。


四、安装 Docker Compose(推荐)

  1. 下载最新版 Docker Compose

    sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  2. 设置执行权限

    sudo chmod +x /usr/local/bin/docker-compose
  3. 验证安装

    docker-compose --version

五、部署一个简单的 Node.js 应用(示例)

  1. 创建项目目录

    mkdir ~/my-node-app && cd ~/my-node-app
  2. 创建 app.js

    const express = require('express');
    const app = express();
    const port = 3000;
    
    app.get('/', (req, res) => {
      res.send('Hello from Node.js in Docker!');
    });
    
    app.listen(port, () => {
      console.log(`App running on http://localhost:${port}`);
    });
  3. 创建 package.json

    npm init -y
    npm install express
  4. 创建 Dockerfile

    FROM node:18-alpine
    WORKDIR /app
    COPY package*.json ./
    RUN npm install
    COPY . .
    EXPOSE 3000
    CMD ["node", "app.js"]
  5. 构建并运行容器

    sudo docker build -t my-node-app .
    sudo docker run -d -p 3000:3000 my-node-app
  6. 开放防火墙端口
    在轻量服务器控制台中,确保安全组或防火墙允许访问 3000 端口。

  7. 访问应用
    浏览器打开:http://<你的服务器IP>:3000


六、常见问题

  • 权限问题:使用 sudo 或配置 docker 用户组。
  • 端口不通:检查服务器安全组是否放行对应端口(如 3000、80、443)。
  • 内存不足:轻量服务器内存较小,避免运行过多容器。

七、优化建议

  • 使用 PM2 管理 Node.js 进程(非 Docker 场景)。
  • 使用 Nginx 反向多个服务。
  • 配置 HTTPS(可用 Let’s Encrypt + Certbot)。

✅ 完成!你现在已经在轻量应用服务器上成功部署了 Node.js 和 Docker 环境,并运行了一个简单的 Node.js 应用。

如需进一步自动化,可结合 CI/CD 工具(如 GitHub Actions)实现自动部署。