看到标题时会出现一些问题。

1.“嘿,我为什么要在容器中运行我的 nodeJS 应用程序?我可以使用节点服务器、nodemon 或 n 个可用的实时服务器”

2.“我什么时候必须将它作为容器运行?”

如果您不打算阅读繁琐的 docker 文档,答案很简单。

合作

我们主要是作为一个团队工作。我们的同行安装和使用依赖项,从存储库中提取并在我们的开发服务器中运行代码通常很麻烦。可能缺少依赖项,需要满足系统要求,存储问题,版本控制,还有很多其他障碍。集装箱来了!!

隔离

在容器中运行的应用程序相互隔离,并拥有自己的存储和环境。我们都会在生产中遇到无法在我们的开发环境中捕获的问题。容器立即解决了这个问题。

启动NodeJS容器的步骤

**先决条件:需要在本地机器上安装 Docker 桌面或 docker-engine **

在此处使用Docker引擎在容器中运行侦听端口 3000 的示例 NodeJS 应用程序。

// app.js

const express = require('express')
const mongoose = require('mongoose');

const app = express();

app.get('/', (req, res) => {
   res.send('Yayyy!! Containers are a piece of cake');
});

app.listen(3000, () => {
   console.log('Container running with db connection');
});

进入全屏模式 退出全屏模式

第 1 步:创建 Dockerfile

创建一个名为Dockerfile的文件,没有任何文件扩展名,内容如下。

FROM node:14

WORKDIR /app

COPY . .

RUN npm install

EXPOSE 3000

CMD [ "node", "app.js" ]

进入全屏模式 退出全屏模式

尝试弄清楚上述步骤的含义。它们代表 docker 图像的层。它只是告诉 Docker 引擎在构建映像时要遵循的过程。等一下,图像是什么意思?让你满意😉

Docker images可以解释为在容器中运行应用程序的蓝图,就像建筑物的蓝图如何帮助我们在块中导航一样。

步骤2:运行docker引擎

打开 docker 桌面或在终端(在 Linux 系统上)中运行docker命令来启动 docker 引擎。

第 3 步:构建 docker 镜像

在终端中导航到我们应用程序的根目录。运行以下命令来构建我们应用程序的 docker 镜像。

docker build .

进入全屏模式 退出全屏模式

最后的.只是指向我们的Dockerfile所在的根目录。此命令将从Docker Hub或称为容器注册表的其他方式下载基础node映像。上述命令将构建要在容器中运行的应用程序容器映像。

成功构建镜像后,终端会向我们显示一个 docker 镜像 id - 类似于以下内容:

=> => writing image sha256:d8e42706********9

进入全屏模式 退出全屏模式

d8e42706********9是此处的图像 ID。

第四步:运行docker容器

最后一步是使用我们获得的镜像 id 运行容器。运行以下命令在容器中启动我们的应用程序。

docker run -p 3000:3000 d8e42706********9

进入全屏模式 退出全屏模式

这会将容器中暴露的端口 3000 路由到本地计算机中的端口 3000。在浏览器中导航到localhost:3000并检查服务器的响应

耶耶!!容器是小菜一碟

🍰 🍰

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐