详解使用Docker给nodejs程序打包的方法

本篇文章带大家了解一下docker,介绍为什么要使用 docker?如何使用 docker?以及使用docker给nodejs程序打包的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

详解使用Docker给nodejs程序打包的方法

你听到过这样的对话吗?

1.png

这种对话很常见。这一般是由于工作环境设置或配置不同而引起的。这就是为什么要使用 docker 的主要目的。

在文中,我将教你什么是 docker,为什么使用以及怎样用来给 nodejs 程序打包。

什么是Docker?

Docker 的定义为:

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

好吧,这些文字只是告诉我们:

Docker 是一种用容器轻松创建、部署和运行应用程序的工具。

为什么要使用 Docker?

Docker 会将你的机器环境与你的代码一起提供给其他人,这样当你团队伙伴得到你的代码时,他们也可以得到你的机器配置。由于代码在拥有这些配置的计算机上运行,因此肯定可以在其它计算机上运行,因为它们具有和你相同的配置。

现在可以把用在配置新计算机上的时间投入到更具更重要的工作中。

如何使用 Docker?

安装

请访问 Docker 官网在菜单中的 Docker Desktop 选项卡下查看如何为你的机器安装 docker

Windows 用户请注意

1. 你需要在计算机中启用虚拟化。要检查是否启用了虚拟化,请按照以下步骤操作:

在键盘上按 ctrl + alt + del在随后的菜单中选择“任务管理器”在弹出的 Windows 对话框中单击“性能”标签。这是我的

2.png

2. 对于使用 Windows 8 或更早版本的用户,请使用 Docker 官网

用 Docker 给 Nodejs 程序打包

确保已启动 docker,并且将其设置为 running,以便你查看更改或 docker 效果。

首先Docker 官网按照Docker 官网设置项目。如果你设置完成了项目并且运行了服务器,则应该在浏览器中得到以下响应

3.png

接下来,在项目的根目录中创建一个文件,并将其命名为 Dockerfile,不带扩展名。

配置 Dockerfile

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

# use docker node 10FROM node:10

登录后复制

输入以下代码为 Docker 应用创建目录

# create a directory to run dockerWORKDIR /app

登录后复制

以下代码把 package.json 文件复制到 /app 目录中

# copy package.json into the new directoryCOPY package.json /app

登录后复制

以下代码在 Docker 应用中安装项目的依赖项

# install the dependenciesRUN npm install

登录后复制

现在把项目中的所有的文件和文件夹复制到 docker 的 /app目录中。以下是代码:

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

登录后复制

以下代码指定 docker 应用运行的端口

# open port 5000EXPOSE 5000

登录后复制

使用以下代码运行 docker 应用

# run the serverCMD node index.js

登录后复制

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

# use docker node 10FROM node:10# create a directory to run dockerWORKDIR /app# copy package.json into the new directoryCOPY package.json /app# install the dependenciesRUN npm install# copy all other files into the app directoryCOPY . /app# open port 5000EXPOSE 5000# run the serverCMD node index.js

登录后复制

构建 Docker 应用

要构建 docker 应用,请在终端中键入以下命令,然后按 Enter 键

docker build -t docker-node-app .

登录后复制

你的终端应输出类似下面的信息:

4.png

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

运行 Docker App

最后在终端中用以下命令运行 docker 应用:

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

登录后复制

它会输出与普通应用完全相同的消息,但是这次,它加载在端口5000上

5.png

在上面的命令中,我们告诉 docker 运行在端口 5000 上构建的程序,即使我们的程序运行在端口 3000 上。

结果

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

6.png

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

docker ps

登录后复制

7.png

如果检查 Docker 仪表板,则会看到你的 Docker 程序:

8.png

你已经用 docker 创建了你的第一个部署。

总结

在快速迭代的系统中, docker 是很重要。因此我们需要学习它。

我们使用的大多数代码都在 Docker 官网 上找到。像 Microsoft、mongoDB、PHP 等许多公司已经为这些事情制作了代码(或镜像),因此你需要做的就是制作自己的副本。

这些配置称为镜像。例如可以在Docker 官网。

谢谢你的阅读。

英文原文地址:https://dev.to/ebereplenty/docker-an-introduction-with-nodejs-4o2j?utm_source=dormosheio&utm_campaign=dormosheio

作者:NJOKU SAMSON EBERE

【推荐学习:《Docker 官网》】

以上就是详解使用Docker给nodejs程序打包的方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2712682.html

(0)
上一篇 2025年3月7日 21:15:40
下一篇 2025年3月1日 20:17:29

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 浅谈Nodejs如何进行多线程处理

    本篇文章给大家介绍一下nodejs进行多线程处理的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Threads à gogo 是nodejs 的原生模块,使用这个模块可以让nodejs 具备多线程处理功能。【推荐学…

    2025年3月7日
    200
  • 深入了解Nodejs中的mongoose工具

    本篇文章给大家详细介绍一下nodejs mongoose。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Mongoose 是在nodejs环境下,对mongodb进行便捷操作的对象模型工具。本文介绍解(翻)密(译)Mon…

    2025年3月7日
    200
  • 使用Nodejs如何实现一个简单的石头剪刀布小游戏

    本篇文章给大家介绍一下使用node.js做一个简单的石头剪刀布小游戏的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 初步了解了 Node.js 的模块、异步、HTTP 服务等知识点之后,就来做一个简单的石头剪刀布的…

    2025年3月7日 编程技术
    200
  • node.js和javascript区别是什么

    node.js和javascript区别是:JavaScript是一门编程语言(脚本语言),而Node.js是一个平台,可以简单理解为它是JavaScrip的一种独立于浏览器的运行环境。 本教程操作环境:windows7系统、javascr…

    2025年3月7日
    200
  • 深入了解Node.js中的Express框架

    本篇文章给大家详细介绍一下node.js中的express框架。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 很多语言都有一些框架,这些框架可以帮助我们更加快捷地开发以及维护项目,像 JS 就有 Vue、React、An…

    2025年3月7日
    200
  • nodejs如何导入模块?require的执行过程介绍

    本篇文章给大家详细介绍一下nodejs中require的执行过程。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 最近在看node,所以就特意了解了下,它模块引入的过程。今天做个回顾记录,希望对正在阅读的你也有所帮助 no…

    2025年3月7日 编程技术
    200
  • 浅谈Nodejs中的可写流write与实现方法

    本篇文章带大家了解一下nodejs中的可写流write,介绍一下node可写流write的实现。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 【推荐学习:《nodejs》】 可写流-Writable fs.createW…

    2025年3月7日 编程技术
    200
  • 浅谈Nodejs文件模块中的fs.mkdir和fs.rmdir

    本篇文章带大家了解一下nodejs文件操作fs.mkdir和fs.rmdir。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 【推荐学习:《nodejs》】 fs.mkdir文件目录新增 案例使用 逐级新增目录 会成功打印…

    2025年3月7日 编程技术
    200
  • 浅谈Nodejs中的多线程操作

    虽说nodejs是单线程的,但是它还是容许多线程操作,下面本篇文章给大家从 node 线程说起,谈谈nodejs中的多线程操作,介绍一下worker_threads模板。 本文测试使用环境:系统:macOS Mojave 10.14.2CP…

    2025年3月7日 编程技术
    200
  • Node.js中的全局对象有哪些?有什么用?

    本篇文章带大家了解一下node.js中的全局对象,看看node.js中有哪些全局对象,这些全局对象有什么用?怎么用?一起来学习吧! 所谓全局对象,就是可以直接访问的对象,比如 浏览器中的的全局对象就是windowNode 中的全局对象就是g…

    2025年3月7日
    200

发表回复

登录后才能评论