You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

docker ps看不到自定义容器、启动退出无端口映射问题排查

自定义Node.js容器启动即退出(Exited (1))无端口映射排查

故障根因

容器启动后秒退返回状态码1,核心原因是Node服务启动入口路径不匹配,node进程找不到指定的入口文件直接崩溃,容器随主进程退出终止。端口映射仅对运行中容器生效,容器退出后端口转发规则会自动释放,因此你在容器列表中看不到映射配置。

你使用的原生HTTP服务依赖Node内置的http模块,不需要安装第三方依赖,因此Dockerfile中删除编译依赖、yarn安装步骤的操作没有问题,不是故障诱因。

排查验证

直接查看崩溃容器的日志即可拿到明确报错,执行命令:

docker logs fea13c68893f

如果是路径不匹配问题,日志会输出MODULE_NOT_FOUND类型错误,明确提示找不到/app/src/index.js文件。

出现该问题的典型场景是:替换官方示例代码时,你把自定义的HTTP服务代码直接放在了构建上下文根目录,没有放到src/子目录下,和Dockerfile中CMD指定的node src/index.js路径不匹配。

修复方案

两种方案任选其一即可:

  • 方案1:调整文件结构
    在执行docker build的目录下新建src文件夹,将你写的HTTP服务代码命名为index.js放入该文件夹,重新构建镜像后启动即可正常运行。
  • 方案2:修改Dockerfile启动命令
    如果你的index.js直接存放在构建上下文根目录,把Dockerfile中的CMD行修改为:
    CMD ["node", "index.js"]
    
    重新执行构建、运行命令即可。

验证修复效果

重新启动容器后执行docker ps,可以看到自定义容器状态为Up,且存在0.0.0.0:3000->3000/tcp的端口映射,访问3000端口即可看到Hello World返回内容。


内容的提问来源于stack exchange,提问作者hahaha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:54:22