返回

Docker 部署 Node 应用程序和 Nginx 容器(二)

前端

导言:

在前一篇文章中,我们为 Docker 容器化部署 Node.js 应用程序和 Nginx 容器奠定了基础环境。现在,让我们深入探究这些部署的具体步骤和技术细节。

Node.js 应用程序部署:

1. Dockerfile 配置:

创建一个名为 Dockerfile 的文件,内容如下:

FROM node:16
WORKDIR /usr/src/app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]

2. 构建镜像:

在项目目录下运行以下命令:

docker build -t node-app .

3. 运行容器:

docker run -d --name node-app node-app

Nginx 容器部署:

1. Dockerfile 配置:

创建名为 nginx-Dockerfile 的文件,内容如下:

FROM nginx:1.19
COPY nginx.conf /etc/nginx/nginx.conf

2. 准备 Nginx 配置:

在项目目录下创建 nginx.conf 文件,内容如下:

server {
    listen 80;
    server_name localhost;
    location / {
        proxy_pass http://node-app:3000;
    }
}

3. 构建镜像:

docker build -t nginx-container -f nginx-Dockerfile .

4. 运行容器:

docker run -d --name nginx-container nginx-container

整合容器:

1. 配置 Docker Compose:

创建一个名为 docker-compose.yml 的文件,内容如下:

version: '3'

services:
  node-app:
    build: ./
    container_name: node-app
    ports:
      - "3000:3000"
  nginx-container:
    build: ./nginx
    container_name: nginx-container
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    ports:
      - "80:80"
    depends_on:
      - node-app

2. 使用 Docker Compose 部署:

docker-compose up -d

测试部署:

1. 访问应用程序:

在浏览器中访问 http://localhost,你应该看到 Node.js 应用程序的界面。

2. 验证反向代理:

检查应用程序的网络请求,确保它们通过 Nginx 反向代理发送到 Node.js 容器。

3. 终止容器:

docker-compose down