原创

使用 Docker 构建并运行一个简单的 Node.js 应用程序

温馨提示:
本文最后更新于 2024年07月24日,已超过 252 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

使用 Docker 构建并运行一个简单的 Node.js 应用程序

本文档介绍如何使用 Docker 构建并运行一个简单的 Node.js 应用程序。

准备工作

  • 安装 Docker Desktop 或 Docker Engine。
  • 创建一个名为 my-app 的目录,并在其中创建一个名为 index.js 的文件。
  • index.js 文件中添加以下代码:

```javascript const http = require('http');

const hostname = '0.0.0.0'; const port = 3000;

const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); });

server.listen(port, hostname, () => { console.log(Server running at http://${hostname}:${port}/); }); ```

构建 Docker 镜像

  1. my-app 目录中创建一个名为 Dockerfile 的文件。
  2. 将以下内容添加到 Dockerfile 文件中:

```dockerfile FROM node:16-alpine

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

CMD ["npm", "start"] ```

  1. 运行以下命令构建镜像:

bash docker build -t my-app .

运行 Docker 容器

  1. 运行以下命令运行容器:

bash docker run -p 3000:3000 my-app

访问应用程序

打开浏览器并访问 http://localhost:3000,您将看到 Hello World

说明

  • FROM node:16-alpine 指示使用 Node.js 16 Alpine 镜像作为基础镜像。
  • WORKDIR /app 设置容器的工作目录。
  • COPY package*.json ./package.json 文件复制到容器的工作目录。
  • RUN npm install 安装依赖项。
  • COPY . . 将所有文件复制到容器的工作目录。
  • CMD ["npm", "start"] 设置容器启动时的命令。
  • docker run -p 3000:3000 my-app 指示 Docker 运行名为 my-app 的镜像,并将容器的端口 3000 映射到主机的端口 3000。

注意

  • 使用 node:16-alpine 镜像可以减小镜像大小。
  • CMD 命令可以指定任何命令,例如 npm startnode index.js
  • 可以使用 docker logs <容器 ID> 命令查看容器日志。
  • 可以使用 docker stop <容器 ID> 命令停止容器。
  • 可以使用 docker rm <容器 ID> 命令删除容器。

其他资源

正文到此结束