Dockerizing 你的Node.js 应用

Docker 彻底改变了我们如何构建、打包和运输软件的方式。Docker 使得开发人员可以打包他们的应用程序并与其他人共享。多亏了 Docker,我们现在看到了云计算的诸多进步。许多新兴的创业公司都以 Docker 技术为基础。此外,Docker 通过弥合开发团队和操作团队之间的差距,增强了 DevOps 方法。今天,我们将学习一个简单的教程,演示如何构建一个简单的‘ Hello World’应用程序ーー我们将对它进行 Dockerize 处理。

先决条件:

  • 下载并安装 Dockerofficial website 官方 站.
  • 安装Node.js
  • 从官方 站安装 npm
  • 教程

    创建应用程序

    创建一个目录来存储应用程序和依赖项。你可以选择任何你想要的名字。我选择“ expapp”这个名字。

    mkdir expapp


    使用命令 npm init-y 初始化应用程序。这将创建带有依赖项的 package.json 文件,以及应用程序的名称和描述。

    { "name": "expapp", "version": "1.0.0", "description": "", "main": "index.js", "scripts": {   "test": "mocha" }, "keywords": [], "author": "", "license": "ISC",}

    我们将通过在项目的根目录上运行以下命令来添加 Express 框架作为依赖项。

    npm install express –save

    一旦添加了这个依赖项,就可以返回并检查 package.json 文件。现在应该列出了表达依赖项。

    { "name": "expapp", "version": "1.0.0", "description": "", "main": "index.js", "scripts": {   "test": "mocha" }, "keywords": [], "author": "", "license": "ISC", "dependencies": {   "express": "^4.17.3" }}

    添加 Express 作为依赖项之后,应该会看到在主目录中创建的另外两个文件: package-lock。Json 和 node _ module。因为这不是本教程的目标,所以我们不会详细介绍。如果你真的想知道更多,你可以通过这个入门指南。

    现在,是时候将我们的主代码添加到 app.js 文件中了。

    创建一个名为 app.js 的文件并添加以下代码:

    const express = require('express');const app = express();const PORT = process.env.PORT || 3002;app.get('/', (request, response) => { response.status(200).json({   message: 'Hello Docker!', });});app.listen(PORT, () => { console.log(`Server is up on localhost:${PORT}`);});

    在上面的文件中,我们正在配置这个应用程序ーー基本上使 Express 成为一个必需的依赖项,并使该应用程序启动一个服务器并监听端口3002的连接。应用程序响应{“ message”: “ Hello Docker!”}对根 URL (/)或路由的请求。对于其他路径,它会回应一个未找到的404。

    我们的简单应用程序已经准备好了。现在,我们可以通过运行它来测试它是否正常工作。运行命令 node app.js,当你点击 http://localhost:3002/时,你会看到下面的输出。

    创建 Dockerfile

    让我们创建一个 Dockerfile 来生成应用程序的映像。转到应用程序的根目录,创建一个名为“ Dockerfile”的文件,并向其中添加以下代码。

    FROM node:14-alpine AS developmentENV NODE_ENV development# Add a work directoryWORKDIR /app# Cache and Install dependenciesCOPY package.json .RUN npm install# Copy app filesCOPY . .# Expose portEXPOSE 3002# Start the appCMD [ "node", "app.js" ]


    在 Dockerfile 中,我们使用 Node: 14-alpine 作为图像的模板

    将容器中的工作目录设置为/app。我们将使用此目录存储文件、运行 npm 和启动应用程序,并公开端口3002以供应用程序运行。

    最后,最后一行指定应用程序将如何启动。

    可选项: 创建一个。文件,以防止将本地模块和日志复制到 Docker 映像上。请注意以下两点: node _ module 和 npm-debug。登入你的。文件。

    构建应用程序的映像

    您了解了如何构建一个简单的应用程序并对其进行 Dockerize; 下一步是将该应用程序部署到云中。我们将考虑将 Kubernetes 作为我们的平台来部署这个应用程序。在下面的教程中,我们将讨论如何将 Node.js 应用程序部署到 Kubernetes。

    将文件保存到根目录中后,让我们使用刚才编写的 Dockerfile 构建一个映像。这可以通过下面的 Docker 生成命令来完成。

    docker build -t express-app .

    参数为 Docker 映像设置名称。我要给我的图片命名为 exp-app。一旦命令成功运行,您应该验证使用命令 docker images 构建的映像


    启动?Container

    是时候使用以下命令启动带有指定端口的 Docker 容器了: Docker run-p 3002:3002 Express-app


    Push to Docker Hub

    现在,把这个图像传到我们的 Docker 中心。请确保您已从终端登录到 Docker 集线器。您可以通过使用 docker 登录命令来实现这一点。


    您需要使用 Docker hub credentials.

    docker build -t [USERNAME]/express-app .

    再次构建映像。将您的用户名添加到上面指定的字段中——它是您的 Docker hub 用户名。

    将您的用户名添加到上面指定的字段中——它是您的 Docker hub 用户名。

    一旦使用 Docker hub 凭据构建了它,使用 docker push [USERNAME]/express-app. 命令将其推送到 Docker hub。
    您应该会看到一个新映像被推送到 Docker 中心。您可以通过转到 Docker hub 仪表板来验证这一点:

    太好了!现在,您可以在任何地方使用这个图像。与您的开发人员同事共享它,并减少在他们的机器上重新构建它的时间和精力。

    通过运行以下命令验证是否已将正确的映像推送到 Docker Hub:

    docker run [USERNAME]/express-app

    您应该看到应用程序在指定的端口上运行,输出如下:

    去 http://localhost:3002/看看。

    你离成为docker专家?又近了一步,恭喜你!您创建了一个应用程序,构建了该应用程序的映像,并将其推送到 Docker Hub 容器注册中心。

    不喜欢复制粘贴博客文章中的代码块吗?您可以看到这个应用程序的 GitHub 存储库中的所有代码。

    https://github.com/pavanbelagatti/Simple-Node-App

    您了解了如何构建一个简单的应用程序并对其进行 Dockerize; 下一步是将该应用程序部署到云中。我们将考虑将 Kubernetes 作为我们的平台来部署这个应用程序。在下面的教程中,我们将讨论如何将 Node.js 应用程序部署到 Kubernetes。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年5月3日
    下一篇 2022年5月3日

    相关推荐