node.js - 为什么执行 docker run 命令后容器立即退出?

标签 node.js docker docker-compose dockerfile port

我是第一次运行 docker,我的容器在 docker run 命令后立即退出。 docker ps 向我显示了一个空列表。当我运行 docker ps -a 时,我得到了我在退出状态下推送的所有容器的结果。

我尝试使用-ti命令,但容器处于退出状态。 我使用以下命令来运行该文件: $ sudo docker build -t test_api3 .$ sudo docker run -p 8080:3000 -ti test_api3 或 ( $ sudo docker run -p 8080:3000 -d test_api3)

Dockerfile

    FROM node:8
    WORKDIR /usr/src/app
    COPY package*.json ./
    RUN npm install
    COPY . .
    EXPOSE 3000
    CMD [ "npm","start" ]

package.json

    {
      "name": "firstapp",
      "version": "1.0.0",
      "description": "first demo app",
      "main": "http-server.js",
      "scripts": {
        "start": "node http-server.js"
      },
      "keywords": [
        "S"
      ],
      "author": "test",
      "license": "ISC"
    }

http-server.js

    const http = require('http');

    const hostname = '127.0.0.1';
    const port = 3000;

    const server = http.createServer((req, res) => {
      res.statusCode = 200;
      res.setHeader('Content-Type', 'text/plain');
      res.end('Hello World\n');
    });

    server.listen(port, hostname, () => {
      console.log(`Server running at http://${hostname}:${port}/`);
    });

最佳答案

我正在运行 ubuntu 操作系统并且它可以工作(如果仍然无法工作,请告诉我您的设置)。该代码的唯一问题是您不能使用地址 127.0.0.1,而必须在 http-server.js 中使用 0.0.0.0。更多解释请引用下面的链接

https://forums.docker.com/t/network-param-for-connecting-to-127-0-0-1-in-container/2333

关于node.js - 为什么执行 docker run 命令后容器立即退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54100316/

相关文章:

wordpress - 在运行 docker compose 时添加新端口

jquery - Webpack安装包后编译失败错误

javascript - Node 意外地从另一个模块调用同名函数

node.js - 不变违规 : Element type is invalid: expected a string (for built-in components) or a class/function. react 路由器 v4

docker - nuget restore在代码构建中失败,但可在本地和docker中工作

docker - 将 docker 参数添加到 gcloud 构建提交

django - Django和Docker:管理生产和开发环境之间的依赖关系

docker - 带有docker的Elasticsearch应用程序可在多节点集群上运行

javascript - 通过 javascript 使用自定义 header 检查凭据后加载 html 页面

networking - docker 启动后 Wifi 连接断开