首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

调试在远程主机的docker容器上运行的NodeJs应用程序的最佳方法是什么?

调试在远程主机的Docker容器上运行的Node.js应用程序的最佳方法是使用远程调试工具。以下是一种常用的方法:

  1. 在Docker容器中安装调试工具:在Dockerfile中添加调试工具的安装命令,例如在Alpine Linux中可以使用apk命令安装node-inspector
  2. 在容器中暴露调试端口:在Dockerfile或者Docker命令中,使用EXPOSE指令或者-p参数将调试端口暴露给主机。
  3. 启动容器并运行Node.js应用程序:使用Docker命令启动容器,并在容器中运行Node.js应用程序。
  4. 在本地主机上安装调试工具:在本地主机上安装与容器中的调试工具相匹配的版本,例如安装node-inspector
  5. 连接到远程调试端口:使用调试工具连接到远程主机的调试端口,例如使用node-inspector的命令node-inspector --web-port=8080 --debug-port=5858
  6. 在浏览器中打开调试界面:在本地主机的浏览器中打开调试工具的界面,例如在地址栏中输入http://localhost:8080/debug?port=5858
  7. 开始调试:在调试工具的界面中,可以设置断点、查看变量值、单步执行等操作,以调试远程主机上运行的Node.js应用程序。

请注意,以上方法仅是一种常用的调试远程主机上Docker容器中Node.js应用程序的方法,具体的调试过程可能会因环境和工具的不同而有所差异。在实际应用中,可以根据具体情况选择适合的调试工具和方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Visual Studio 调试系列12 远程调试部署在远程计算机IIS上的ASP.NET应用程序

要调试已部署到IIS的ASP.NET应用程序,请在部署应用程序的计算机上安装并运行远程工具,然后从Visual Studio附加到正在运行的应用程序。 ?...本文包括在Windows服务器上设置IIS的基本配置以及从Visual Studio部署应用程序的步骤。包括这些步骤以确保服务器已安装所需的组件,应用程序可以正确运行,以及您已准备好进行远程调试。...如果在 IIS 中运行您的应用程序,并且只是想要下载远程调试器和启动调试,请转到下载并安装 Windows Server 上的远程工具。...在某些情况下,这是一种将应用部署的快速方法。 创建发布设置文件时,权限自动将会在 IIS 中设置。 部署发布到本地文件夹并将输出的首选方法复制到 IIS 上的已准备好应用程序文件夹。...》 11 设置 Windows Server 上的远程调试器 参考《Visual Studio 调试系列11 远程调试》 12 从 Visual Studio 计算机附加到 ASP.NET 应用程序

4K10

应用软件开发的工程化-JavaScript

# 运行以下命令来启动应用程序 验证NodeJS Express 开发环境 创建一个简单的 Express 应用程序示例: mkdir my-app && cd my-app && npm init...Vue DevTools:用于调试 Vue 应用程序的工具。它提供了丰富的调试功能,包括代码高亮、断点设置、变量值查看、堆栈跟踪等 ESLint:最流行的 JavaScript 代码风格校验工具。...该镜像将使用 Alpine Linux 作为基础操作系统,并安装应用程序的依赖项。容器启动时将运行 node index.js 命令来启动应用程序,并公开应用程序的端口 80。...Docker 镜像:此阶段构建一个包含 APP 的 Docker 镜像。 设置 K3s:此阶段在远程服务器上设置 K3s 集群。 部署应用:此阶段将 APP 部署到 K3s 集群。...C程序的编译,测试,打包容器镜像并推送到自定义的仓库,并完成K3S集群的初始化,将容器镜像部署到K3S集群中。

25550
  • 容器并不能解决一切问题

    随着 DevOps 开始成熟,业界发展出了应用开发的最佳实践,比如 12 因素应用程序方法论,但许多实现细节仍然是依赖于特定技术的。...简而言之,Docker Compose 对那些想要使用容器化的方法开发 12 因素应用程序的开发人员来说是一种完美工具。...例如,如果你在 Node.JS 中编写一个依赖于 Postgres 的 API,那么你可以在 nodejs 容器中运行代码(可能在它前面有一个文件监视器),在 Postgres 容器中运行 Postgres...然而,并不是所有的开发工作流都可以被容器化。无论是为了性能、易于与主机操作系统特性集成,还是其他许多原因,有时最好将开发环境的某些部分作为本地进程运行,而将其他部分作为容器运行。...像 Telepresence 这样的工具有助于将本地容器连接到远程 Kubernetes 集群中运行的容器,但我们仍然缺乏能够跨本地和远程环境透明地处理服务发现、代理和身份验证等问题的高级工具。

    68620

    容器并不能解决一切问题

    随着 DevOps 开始成熟,业界发展出了应用开发的最佳实践,比如 12 因素应用程序方法论,但许多实现细节仍然是依赖于特定技术的。...简而言之,Docker Compose 对那些想要使用容器化的方法开发 12 因素应用程序的开发人员来说是一种完美工具。...例如,如果你在 Node.JS 中编写一个依赖于 Postgres 的 API,那么你可以在 nodejs 容器中运行代码(可能在它前面有一个文件监视器),在 Postgres 容器中运行 Postgres...然而,并不是所有的开发工作流都可以被容器化。无论是为了性能、易于与主机操作系统特性集成,还是其他许多原因,有时最好将开发环境的某些部分作为本地进程运行,而将其他部分作为容器运行。...像 Telepresence 这样的工具有助于将本地容器连接到远程 Kubernetes 集群中运行的容器,但我们仍然缺乏能够跨本地和远程环境透明地处理服务发现、代理和身份验证等问题的高级工具。

    52840

    【无服务器架构】Apache Openwhisk 概览

    OpenWhisk使用Docker容器管理基础架构,服务器和扩展,因此您可以专注于构建出色而高效的应用程序。...如果需要当前不支持“即用即用”运行时的语言或库,则可以使用Docker SDK将自己的可执行文件创建并自定义为Zip Actions,并在Docker运行时上运行。...将您的功能组合成丰富的组合 使用JavaScript / NodeJS,Swift,Python,Java等不同语言编写的代码,或者通过与Docker打包代码来运行自定义逻辑。...使用诸如序列之类的高级编程构造将多个动作声明式链接在一起。使用参数绑定可以避免在代码中对服务凭据进行硬编码。并且,使用各种开发工具实时调试代码。 ?...按需扩展规模和最佳资源利用 在不到一秒的时间内,即可一次执行一万次,或者每周一次。动作实例可以根据需要进行扩展以满足需求,然后消失。在不为空闲资源付费的情况下,享受最佳利用率。 ?

    1.7K20

    docker学习笔记

    image pull:用于下载镜像,镜像从远程镜像仓库服务的仓库中下载,默认从Docker Hub的仓库中拉取 # 格式:docker pull [OPTIONS] NAME[:TAG|@DIGEST...-i: 以交互模式运行容器,通常与 -t 同时使用; # -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; # -P: 随机端口映射,容器内部端口随机映射到主机的高端口 # -p: 指定端口映射.../bin/bash # 说明:-it使容器具备交互性并与终端连接,命令最后表明运行容器中的Bash Shell程序 2、docker container ls:列出所有运行状态的容器可用docker...> bash # 该命令会将docker主机中的shell连接到一个运行中的容器,在容器内部启动一个新的bash shell进程 6、docker container start:用于重启处于停止(Exited...name或container id 8、快捷键Ctrl+PQ用于断开docker主机的shell终端与容器终端的连接,并在退出后保证容器在后台运行 应用容器化 (Containerizing

    74320

    Kubernetes 中分析调试网络流量的4种方式

    本文介绍了在 Kubernetes 中网络调试分析的4种方法....然而,这种调试方法在一个容器化的世界中并不适用。 首先,容器很可能在您的机器无法直接访问的内部容器平台网络上运行。第二个问题是,按照容器设计最佳实践,容器只包含执行其任务所需的最小应用程序和库集。...它是捕获Kubernetes/OpenShift pods之间的网络流量数据的简单方法,允许开发人员更好地分析和调试容器化应用程序中的通信问题,并更快、更有效地解决问题。...- 利用Network Namespace 正如方法二中提到的Network Namespace概念, 实际上, 不同的容器, 只是在宿主机上不同 namespace 运行的进程而已....只是在宿主机上不同 namespace 运行的进程而已.

    1.3K50

    Docker 编配 ...它是什么意思,为什么你会需要它

    )而被发明的,其实现方法是创建一个容器,该容器包含可自行部署的应用程序部分以及成功运行它们所需要的中间件和应用程序业务逻辑。...虽然Docker有一个使用Docker bridge的基本解决方案,但是这个解决方案并不总是首选,尤其是在跨不同主机部署容器时,您需要关注真正的网络设置。...作为一个方面的说明:在Docker中,你需要一个特殊的调整,因为你通常不会碰到容器内的配置文件,为了容器保持完好无损,对于这种情况需要一个有趣的解决方法。...我们从Create开始使用 - 创建一个容器,我们没有在一开始时就去实现配置,并开始运行应用程序。...另一方面,我们有带NodeJS和Nodecellar应用程序的Nodecellar容器。Nodecellar容器需要连接到MongoD容器,以在应用程序启动时运行app queris。

    1K80

    12 Dockerfile

    LABEL 用于指定 Dokcer 镜像的元数据信息。 ARG 它用于设置带有键和值的构建时变量。当容器运行时,ARG 变量将不可用。如果我们想在正在运行的容器上保留变量,请使用 ENV 指令。...我们可以从 Docker Hub 上提供的各种预构建基础镜像中进行选择,例如 AIpine Linux,Centos 或 Nodejs 或 Golang 等特定语言运行时。...FROM node:14 上面的实例中,我们适用版本为 14 的 Nodejs 基础镜像。该镜像包含了 Nodejs 及其运行环境,适合运行 Nodejs 应用程序。...该镜像可以作为容器在任何安装了 Docker 的系统上运行,为我 i 们的应用程序提供一致且隔离的环境。...接着,我们适用npm install安装 Nodejs 依赖项。接下来,我们将应用程序代码的其余部分复制到工作目录。然后公开端口 3000 以允许外部访问容器内运行的应用程序。

    19111

    Go语言开发调试中阶

    目录 DIY纯命令行调试 开始我们的表演 就是他干的好事,神器delve DIY纯命令行调试 几年前,为学习某个开发框架,需要在系统层装一大堆的类库和脚手架(看到nodejs开发者默默点头了),搞得系统越来越臃肿...上帝说要有光,于是以docker为代表的容器技术诞生了,通过DIY构建镜像,能够将所有的依赖打包到一起,并且可以到处运行,一切似乎都变得简单了。。。...我们期望的镜像,要能够运行和调试Go应用程序,因此需要的依赖包括: go语言安装包,直接可以从官网curl下来安装 gcc、gdb等系统层辅助工具,gdb其实是个大神器,我们这次不展开讨论了 delve...开始我们的表演 推荐大家用vagrant创建linux box来做各种test,这个box可以预装很多包括docker在内的必要服务,这样可以快速进行开发测试,并且不会污染主机环境。...log.Fatal(http.ListenAndServe(":80", nil)) } 接下来运行以下命令: # 启动用于调试的容器,并把目标代码目录挂载到容器内 # 特别注意这个参数“--security-opt

    1.1K30

    全面的Docker快速入门教程

    Docker的优势有哪些? 灵活性:即使是最复杂的应用程序也可以容器化。 轻量级:容器利用并共享主机内核,使它们在系统资源方面比虚拟机更有效率。...通过利用 Docker 的快速交付、测试和部署代码的方法,您可以显着减少编写代码和在生产中运行代码之间的延迟。...Docker主要用来解决什么问题? Docker的出现主要就是为了解决:在我的机器上运行时正常的为什么到你的机器上就运行不正常了。   比如你写一个Web应用,并且本地调试没有任何问题。...Docker 客户端和守护进程可以运行在同一个系统上,或者您可以将一个 Docker 客户端连接到一个远程 Docker 守护进程。...使用本机 Windows Hyper-V 虚拟化实现快速可靠的性能 能够通过 Windows 机器上的 WSL 2 在 Linux 上本地工作 代码和数据的卷安装,包括文件更改通知和轻松访问本地主机网络上运行的容器

    1.2K20

    分享4个Linux中Node.js的进程管理器

    Node.js进程管理器是一个有用的工具,可以确保Node.js进程或脚本连续(永久)运行,并使其能够在系统引导时自动启动。...它还支持应用程序日志记录,群集和负载平衡,以及许多其他有用的流程管理功能。 另请参阅:2019年为开发人员提供的14个最佳NodeJS框架 包管理器尤其适用于在生产环境中部署Node.js应用程序。...image.png 安装PM2以在Linux中运行Nodejs应用程序 它支持应用程序监视:提供一种监视应用程序资源(内存和CPU)使用情况的简单方法。...最后但同样重要的是,如果您使用Docker容器,PM2允许容器集成,并提供允许您以编程方式使用它的API系统。 2....image.png 用于Nodejs的StrongLoop PM进程管理器 它支持应用程序监视(查看性能指标,如事件循环时间、CPU和内存消耗)、多主机部署、集群模式、零停机应用程序重启和升级、故障时自动进程重启以及日志聚合和管理

    3.2K61

    2021年排名前85的DevOps面试问答

    监视服务器的状态,并确定应用程序是否正常运行。 启用连续审核,交易检查和受控监控。 10. AWS在DevOps中的作用是什么?...60.使内容可重复使用/重新分发的最佳方法是什么? 有三种方法可以使内容在Ansible中可重用或重新分发: 角色用于管理剧本中的任务。可以通过Ansible Galaxy轻松共享它们。...Docker映像 Docker容器 Docker映像是Docker容器的模板 容器是Docker映像的运行时实例 使用Dockerfile构建映像 容器是使用Docker映像创建的 它存储在Docker...示例: 暴露8080 发布 发布在Docker运行命令中使用。 可以在Docker环境之外使用。 它用于将主机端口映射到正在运行的容器端口。...然后,该插件将检查主机或服务的运行状态,并将结果报告回Nagios守护程序。 它将处理主机或服务检查的结果并发送通知。 ? 被动检查: 在被动检查中,外部应用程序检查主机或服务的状态。

    6.8K30

    加速开发流程的 Dockerfile 最佳实践

    在主机和容器之间保持实时加载该技巧和 Dockerfile 并不直接相关,但我们经常听到这样的问题:在容器中运行应用程序并在主机上从 IDE 修改源代码时,如何保持代码的热更新?...在我们这里的示例,我们需要将我们的项目目录挂载到容器中,并传递一个环境变量来启用 Chokidar,该项目封装了 NodeJS 文件的更改事件。...image_name复制代码这里我们通过 -v 将宿主机上面的代码目录挂载到容器中,当宿主机上的代码有任何变更时都会在容器中进行实时加载更新。...从源上进行一致构建如上一节所述,我们可以通过在 Dockerfile 描述中添加源文件和依赖项并在其上运行命令来构建应用程序。...无论是否在容器中运行的所有应用程序都应遵守最小特权原则,这意味着应用程序应仅访问其所需的资源。如果出现恶意行为或错误,以太多特权运行的进程可能会在运行时对整个系统造成意外的后果。

    86330

    实践分享:基于DevOps流程的容器安全看板

    避免常见的配置错误 如果主机、容器运行时、集群或云资源配置错误,很可能会导致攻击。一些常用基准、最佳实践和加固指南为我们介绍了如何发现这些错误配置,其中,CIS 基准是一个非常重要的基准。...这些内容中的任何一个组件都可能存在漏洞或配置错误,并可能被用作访问正在运行的容器的入口点或造成拒绝服务攻击。通过主机扫描工具可以检测出内核、标准库、甚至是在主机上运行的容器中的已知漏洞。...不要以 root 身份运行容器。最好是使用随机 UID(如 Openshift),不映射到主机中的真实用户,或者在 Docker 和 Kubernetes 中使用用户命名空间功能。 ● 限制容器权限。...Docker 和 Kubernetes 提供了删除 Linux Capabilities 的方法,不允许存在特权容器。Seccomp 和 AppArmor 可以对容器的可执行操作范围添加更多限制。...这时就需要良好的漏洞管理策略,包括: ● 优先考虑需要修复的内容。 我们应该专注于分数或严重程度较高的主机和容器漏洞,这通常意味着它们可以远程利用,并且有公开的利用方法。

    1.2K20

    什么是Docker的编排?它到底意味着什么?为什么我们需要它?

    Docker容器是为了帮助开发者们快速,可靠地部署应用程序组件或层而被开发出来的,它是通过创建一个包含可自行部署的应用程序组件,中间件和应用程序的业务逻辑的容器来成功进行运行的。...虽然说Docker有一个通过使用Docker桥来连接容器的基本解决方案,但是这个解决方案并不会总是首选,尤其是在跨不同主机部署容器时,因为您需要考虑到真实的网络设置这个问题。...一点小小的备注:因为在Docker中您通常不会碰到容器内用来保持容器完整性的配置文件,所以您会需要对应用程序做一些调整。对于这种情况来说,您就需要一个非常有趣的解决方法。...介绍Docker Cloudify插件 Cloudify这个Docker插件 其实是非常简单的,因为它会安装在机器上的Docker API端点或服务器上,然后使用Docker-PY来结合创建,配置和删除容器的功能...另一台主机上,我们安装了Nodecellar容器和NodeJS与Nodecellar应用程序。Nodecellar容器需要连接到MongoD容器,以便于在应用程序启动时运行程序的query。

    2.1K50

    简化Kubernetes开发:你的工具指南

    通过在远程集群中为应用程序运行占位符 pod,Telepresence 将传入的流量路由到本地工作站上的容器。它将立即反映开发人员在远程集群中对应用程序代码所做的任何更改,而无需部署新容器。...因此,在 Docker Compose 上顺利运行的应用程序的行为可能在部署到 Kubernetes 生产集群时不会表现得类似。...ports "8080:8080" 将主机上的端口 8080 映射到容器中的端口 8080,允许您在 http://localhost:8080 上访问在容器中运行的 Java 应用程序。...它非常适合在单个主机或机器上运行的应用程序,使其成为开发和测试环境的绝佳选择。Docker Compose 允许在开发过程中快速迭代,因为您可以快速重建和重新部署容器。...限制 虽然容器有效地解决了“在我的机器上可以运行”的问题,但 Docker Compose 引入了一个新的挑战 - “在我的 Docker Compose 设置上可以运行”。

    18110

    Docker 业务流程的概述以及用处

    然而,一个应用程序通常是在其架构中是多层的,这意味着多层之间有着依赖关系,依赖性的性质可以是从网络连接和远程API调用到应用程序层之间的消息交换。因此,应用程序是一组具有特定配置的不同容器。...这就是为什么需要将应用程序组合在一起。 虽然Docker有一个使用Docker桥连接容器的基本解决方案,但是这个解决方案并不总是首选,尤其是在跨不同主机部署容器时,需要配置正确。...作为一个方面说明:在Docker中,你需要一个特殊的调整,因为你通常不会触摸容器内的配置文件,所以你可以保持容器的完整性,所以对于这种情况需要解决方法。...所以我们可以配置容器的创建,并使用了TOSCA关系预先配置挂钩,以获得在运行时的相关容器的信息。 将运行时信息公开到具有依赖关系的容器的方法是将它们设置为环境变量。...另一种是Nodecellar的容器,里面有NodeJS和Nodecellar应用。当应用程序启动时,Nodecellar容器需要连接到MongoD容器来运行应用程序查询。

    73560

    Docker真的被Kubernetes放弃了吗?

    这意味着,虽然在 Kubernetes 集群中可以运行用 Docker 构建的容器镜像,但 Kubernetes 将不再使用 Docker 作为容器运行时。 1、Docker 是什么?   ...Docker 使用的是客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。...2、Kubernetes 是什么?   Kubernetes(也称为 K8s)是用于自动部署、扩展和管理容器化应用程序的开源系统。...虽然 Docker 和 Kubernetes 都是与容器化技术相关的工具,但它们在某些方面有着明显的不同。 使用范围和目的: Docker 主要关注的是容器的打包和运行,简化了应用程序的交付。...它可以在单机上运行,也可以结合 Docker Swarm 在多机上协同工作。Kubernetes 则更加复杂,提供更多的功能和更高的灵活性,它是为在集群上大规模运行和管理容器化应用设计的。

    1.5K10
    领券