Docker 安装 Node.js 学习笔记

本文旨在介绍如何使用 Docker 安装和运行 Node.js。Docker 是一种容器化技术,可以将应用程序和它的所有依赖项打包到一个容器中,从而可以在任何地方部署这个容器,而不必担心环境差异。

安装 Docker

如果您尚未安装 Docker,请访问 Docker 官网 下载并安装适用于您操作系统的 Docker。

运行 Node.js 容器

以下是运行 Node.js 容器的命令:

Copy Code
docker run -it --rm -p 3000:3000 node

该命令将会从 Docker Hub 下载 Node.js 镜像并启动一个包含 Node.js 的容器。选项说明如下:

  • -it:使用交互式终端运行容器。
  • --rm:容器退出时自动删除容器。
  • -p 3000:3000:将主机的 3000 端口映射到 Docker 容器的 3000 端口。
  • node:要运行的镜像名称(默认为最新版本)。

在运行容器的过程中,可以通过在容器终端中使用 node 命令来运行 Node.js 应用程序。另外,通过 Ctrl+P, Ctrl+Q 可以退出容器终端,但保持容器运行。

在容器中安装 Node.js 应用程序

要在容器中运行自己的 Node.js 应用程序,需要将应用程序文件复制到容器中并安装依赖项。以下是一个示例 Dockerfile:

DockerfileCopy Code
FROM node WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["npm", "start"]

该 Dockerfile 使用官方的 Node.js 镜像作为基础镜像,并将当前目录中的所有文件复制到容器的 /app 目录中。然后运行 npm install 安装所有 Node.js 依赖项。最后暴露容器的 3000 端口并运行 npm start 命令。

构建和运行自己的 Docker 镜像

要构建自己的 Docker 镜像,请使用以下命令:

Copy Code
docker build -t my-node-app .

该命令会在当前目录中查找名为 Dockerfile 的文件,并使用该文件构建一个名为 my-node-app 的新镜像。

要运行该镜像,请使用以下命令:

Copy Code
docker run -it --rm -p 3000:3000 my-node-app

该命令将会从 my-node-app 镜像启动一个容器,并将主机的 3000 端口映射到容器的 3000 端口。

示例应用程序

以下是一个简单的 Node.js 应用程序,用于演示如何在 Docker 容器中运行应用程序:

javascriptCopy Code
const express = require('express') const app = express() app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(3000, () => { console.log('App listening on port 3000!') })

将该应用程序保存到名为 app.js 的文件中,然后使用以下命令构建镜像并运行容器:

Copy Code
docker build -t my-node-app . docker run -it --rm -p 3000:3000 my-node-app

打开浏览器并访问 http://localhost:3000,即可看到输出 Hello World!