在 Linux 上使用 Docker 进行 Node.js 应用的容器化部署是一个常见的做法。以下是一个基本的步骤指南:
首先,确保你的 Linux 系统上已经安装了 Docker。你可以使用以下命令来安装 Docker:
# 更新包索引
sudo apt-get update
# 安装必要的包
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加 Docker 仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 更新包索引
sudo apt-get update
# 安装 Docker CE
sudo apt-get install docker-ce
# 启动 Docker 服务
sudo systemctl start docker
# 设置 Docker 开机自启
sudo systemctl enable docker
在你的 Node.js 项目根目录下创建一个名为 Dockerfile
的文件,内容如下:
# 使用官方 Node.js 运行时作为父镜像
FROM node:14
# 设置工作目录
WORKDIR /usr/src/app
# 复制 package.json 和 package-lock.json
COPY package*.json ./
# 安装应用依赖
RUN npm install
# 复制应用代码
COPY . .
# 暴露应用端口
EXPOSE 3000
# 启动应用
CMD ["node", "app.js"]
在项目根目录下运行以下命令来构建 Docker 镜像:
docker build -t my-node-app .
构建完成后,你可以使用以下命令来运行 Docker 容器:
docker run -p 3000:3000 my-node-app
这会将容器的 3000 端口映射到主机的 3000 端口。
打开浏览器,访问 http://localhost:3000
,你应该能看到你的 Node.js 应用的输出。
如果你有多个服务需要部署,可以使用 Docker Compose 来管理这些服务。首先,创建一个 docker-compose.yml
文件:
version: '3'
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
然后运行以下命令来启动服务:
docker-compose up --build
如果你需要持久化数据,可以使用 Docker 卷。例如:
docker volume create my-node-data
docker run -v my-node-data:/usr/src/app/data my-node-app
这样,你的数据将会被持久化到 Docker 卷中。
通过以上步骤,你就可以在 Linux 上使用 Docker 进行 Node.js 应用的容器化部署了。