容器化初学者:使用 Docker 运行 nodeJS 应用程序
看到标题时会出现一些问题。
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
并检查服务器的响应
耶耶!!容器是小菜一碟
🍰 🍰
更多推荐
所有评论(0)