在轻量应用服务器(如腾讯云轻量应用服务器、阿里云轻量服务器等)上部署 Node.js 和 Docker 环境,可以按照以下步骤操作。以 Ubuntu 系统为例:
一、准备工作
-
登录服务器
使用 SSH 登录你的轻量应用服务器:ssh root@your_server_ip(替换
your_server_ip为你的服务器公网 IP) -
更新系统包
sudo apt update && sudo apt upgrade -y
二、安装 Node.js
推荐使用 NodeSource PPA 安装最新稳定版 Node.js。
-
安装依赖
sudo apt install -y curl gnupg -
添加 NodeSource 仓库(以 Node.js 18.x 为例)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - -
安装 Node.js 和 npm
sudo apt install -y nodejs -
验证安装
node --version npm --version
三、安装 Docker
-
卸载旧版本(如有)
sudo apt remove docker docker-engine docker.io containerd runc -
安装依赖包
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common -
添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg -
添加 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 -
更新包索引并安装 Docker
sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io -
验证 Docker 安装
sudo docker --version sudo docker run hello-world -
(可选)将当前用户加入 docker 组,避免每次使用 sudo
sudo usermod -aG docker $USER退出并重新登录 SSH,使组权限生效。
四、安装 Docker Compose(推荐)
-
下载最新版 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 -
设置执行权限
sudo chmod +x /usr/local/bin/docker-compose -
验证安装
docker-compose --version
五、部署一个简单的 Node.js 应用(示例)
-
创建项目目录
mkdir ~/my-node-app && cd ~/my-node-app -
创建
app.jsconst 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}`); }); -
创建
package.jsonnpm init -y npm install express -
创建
DockerfileFROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["node", "app.js"] -
构建并运行容器
sudo docker build -t my-node-app . sudo docker run -d -p 3000:3000 my-node-app -
开放防火墙端口
在轻量服务器控制台中,确保安全组或防火墙允许访问3000端口。 -
访问应用
浏览器打开: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)实现自动部署。
CLOUD技术笔记