Docker - Nodejs 简介

2025-06-04

Docker - Nodejs 简介

您一定听说过流行的docker,它让全球开发人员的生活变得轻松。

你听过这样的对话吗?

Developer 1: It doesn't work on my computer 😒

Developer 2: Ahhh! But it works on mine perfectly 🤨

Enter fullscreen mode Exit fullscreen mode

这种对话并不罕见。通常,这是由于工作环境设置或配置的差异造成的。这也是如今使用 docker 的主要目的。

在本教程中,我将教您什么是 docker、为什么使用它以及如何在 nodejs 应用程序上使用它。

什么是 Docker?

通常,定义是:

Docker 是一个容器化平台,用于将应用程序及其依赖项打包在一起,以确保应用程序无论在何种工作环境下都能轻松运行。

嗯,这些话只是告诉我们:

Docker 是一个旨在通过使用容器轻松创建、部署和运行应用程序的工具。

为什么要使用 Docker?

下面的图片简单说明了我们应该使用docker的原因。

替代文本

可以说,Docker 会将你的机器与你的代码一起发布,这样当你的团队成员获取你的代码时,他们也会获取你的机器配置。由于代码可以在你的机器上运行,并且使用了这些配置,因此它肯定也能在他们的机器上运行,因为他们拥有你的配置。

原本用于在新机器上开始设置该项目的时间现在可以用于更有成效或更重要的事情。

如何使用 Docker?

安装

  • 请访问Docker 网站
  • 在侧面菜单中,查看如何在Docker Desktop选项卡下为您的机器安装 docker

Windows 用户须知
:A.您需要在计算机中启用虚拟化功能。要检查虚拟化功能是否已启用,请按照以下步骤操作:

  • 在键盘上按下ctrl + alt + del
  • Task Manager在随后的菜单中选择
  • 点击performance弹出的 Windows 对话框中的选项卡。这是我的

替代文本

如果您尚未启用,本文将介绍如何启用虚拟化

B.对于使用 Windows 8 或更早版本的人,请使用docker toolbox

Docker 化 Nodejs 应用程序

确保您已启动 docker 并将其设置为运行,以便您看到更改或 docker 效果。

本教程中我们将使用的项目是我们在文章“使用 Express Routing 优化 Nodejs 代码结构”中制作的项目。

替代文本

  • 接下来,在根目录中创建一个文件,并为其命名,Dockerfile不添加扩展名。

配置 Dockerfile

  • 在文件中,输入以下代码来指定docker node我们正在使用的

# use docker node 10
FROM node:10

Enter fullscreen mode Exit fullscreen mode
  • 下面输入以下代码来为docker应用程序创建一个目录

# create a directory to run docker
WORKDIR /app

Enter fullscreen mode Exit fullscreen mode
  • 使用以下代码将package.json文件复制到目录中/app

# copy package.json into the new directory
COPY package.json /app

Enter fullscreen mode Exit fullscreen mode
  • 使用这些代码在docker应用程序中安装项目的依赖项

# install the dependencies
RUN npm install

Enter fullscreen mode Exit fullscreen mode
  • 现在将项目中的所有其他文件和文件夹复制到 docker/app目录中。使用以下代码:

# copy all other files and folder into the app directory
COPY . /app

Enter fullscreen mode Exit fullscreen mode
  • 通过使用以下代码公开或打开端口来指定 Docker 应用程序将运行的端口

# open port 5000
EXPOSE 5000

Enter fullscreen mode Exit fullscreen mode
  • 使用以下代码运行docker应用程序

# run the server
CMD node index.js

Enter fullscreen mode Exit fullscreen mode

我们Dockerfile现在看起来是这样的:


# use docker node 10
FROM node:10

# create a directory to run docker
WORKDIR /app

# copy package.json into the new directory
COPY package.json /app

# install the dependencies
RUN npm install

# copy all other files into the app directory
COPY . /app

# open port 5000
EXPOSE 5000


# run the server
CMD node index.js

Enter fullscreen mode Exit fullscreen mode

构建 Docker 应用程序

  • 要构建 docker 应用程序,请在终端中输入以下命令并按下Enter

docker build -t docker-node-app .

Enter fullscreen mode Exit fullscreen mode

你的终端应该看起来像这样:

Docker 构建镜像

上面的命令中,docker-node-app是我们正在创建的 Docker 应用的名称。因此,您的名称可能会有所不同。另外,不要忘记.末尾的句点 ( )。

运行 Docker 应用程序

  • 最后,在终端中使用以下命令运行 docker 应用程序:

docker run -it -p 5000:3000 docker-node-app

Enter fullscreen mode Exit fullscreen mode

它将读取与普通应用程序完全相同的消息,但这一次,它在端口 5000 上加载

替代文本

在上面的命令中,我们告诉 docker 在端口 5000 上运行我们构建的应用程序,即使我们的主应用程序在端口 3000 上运行。希望这有意义。

结果

我们的 Docker 应用程序现在在端口 5000 上运行,而原始应用程序在端口 3000 上运行。检查您的浏览器

替代文本

要查看所有正在运行的 Docker 应用程序,请在新终端中使用以下命令

docker ps

Enter fullscreen mode Exit fullscreen mode

替代文本

如果您还检查您的 docker 仪表板,您将看到您的 docker 应用程序像我的一样运行:

替代文本

太棒了!恭喜🥳您使用 docker 创建了第一个部署。

结论

在快节奏的系统中,docker 对于效率的重要性怎么强调也不为过。因此,有必要学习它。

GitHub 仓库更新 Dockerfile。请查看并留下star。😊

我们使用的大部分代码都可以在docker hub上找到。许多公司,例如微软、mongoDB、PHP 等,已经为这些项目制作了代码(或镜像),因此您只需复制一份即可。我鼓励您去看看。

这些配置被称为镜像。例如,我们使用的节点镜像可以在这里找到。

希望你喜欢这篇教程,就像我喜欢制作它一样。我每周都会更新文章,所以下周见。

感谢您的光临。🤗

文章来源:https://dev.to/ebereplenty/docker-an-introduction-with-nodejs-4o2j
PREV
破解移动系统设计面试(iOS 和 Android)
NEXT
Patrón Repositorio(存储库模式)和 Unidad de Trabajo(工作单元)en ASP.NET Core WebApi 3.0