我已经在docker容器中构建了一个Node.js应用程序,其中包含以下Dockerfile:
FROM node:carbon
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "npm", "start" ]
我正在尝试在快速路由内.log控制台,但是docker run -p 49160:8080 -d
之后,控制台不是交互式的,日志根本没有回显。
'use strict';
// Requires
const express = require('express');
// Constants
const PORT = 8080;
const HOST = '0.0.0.0';
// App
const app = express();
// Routes
app.get('/', (req, res) => {
// This isn't being printed anywhere
console.log(req);
});
// Start
app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);
我做错了什么?
从用于运行容器的命令中删除-d
:
docker run -p 49160:8080
-d
选项在后台运行容器,因此您将无法在控制台中看到其输出。
并且想要访问该容器的 shell,则可以在容器启动并运行后运行以下命令:
docker exec -it <container-name> bash
添加此评论,因为我正在搜索相同的东西,这是谷歌上的第一个结果。
docker logs <container-name>
https://docs.docker.com/engine/reference/commandline/logs/