【问题标题】:Docker logs command doesn't show any logsDocker logs 命令不显示任何日志
【发布时间】:2020-01-23 09:07:16
【问题描述】:

我在 python 中有一个烧瓶应用程序,它内置在图像中,当我尝试使用命令运行它时

docker logs -f f7e2cd41c0706b7a26d9ff5821aa1d792c685826d1c9707422a2a5dfa2e33796

它没有显示任何日志,它至少应该显示烧瓶应用程序已经启动对吗?请注意,我可以从主机访问烧瓶 API 并且它正在工作。代码中有许多打印语句让这个 API 起作用,所以 这些打印语句应该已经出现在日志中 .我在这里错过了什么吗?

Dockerfile 是:

FROM python:3.6.8

WORKDIR /app
COPY . /app

#RUN apt-get update -y
#RUN apt-get install python-pip -y

RUN pip install -r requirements.txt

EXPOSE 5001

WORKDIR Flask/
RUN chmod -x main.py ;

CMD ["python", "main.py"]

【问题讨论】:

  • 您好 Ktwradr,您使用了哪个图像,请告诉我,如何重现您的场景?我假设未正确设置日志文件以获取服务器日志的标准输出
  • 我有 python 3.6 作为基础镜像
  • setting ENV PYTHONUNBUFFERED 1 有帮助吗? (如果等待的时间足够长,它会产生大量输出吗?)

标签: docker flask


【解决方案1】:

您可以从主机获取日志。默认日志驱动程序是位于本地磁盘上的 JSON 结构文件

/var/lib/docker/containers/[container-id]/[container-id]-json. log.

或者和你一样的方法也可以。

 sudo docker ps -a
 sudo docker logs -f container-id

【讨论】:

  • 我正在使用 windows 不知道它会存储在 windows 中的什么位置
  • @Kitwradr 对不起,我在 Windows 中不知道,但你做了我提到的第二步。
  • @Kitwradr docker inspect [container-id] | findstr "LogPath" 应该为您提供日志路径。
  • 我得到的路径是 /var/lib/docker/containers/f7e2cd41c0706b7a26d9ff5821aa1d792c685826d1c9707422a2a5dfa2e33796/f7e2cd41c0706b7a26d9ff5821aa1d792c685826d1c9707422a2a5dfa2e33796-json.log ,但是 var/lib ?这是在windows哪里? @Nitish
  • @kitwradr 看看this 帖子
猜你喜欢
  • 2021-07-14
  • 1970-01-01
  • 1970-01-01
  • 2018-07-06
  • 1970-01-01
  • 1970-01-01
  • 2023-02-21
  • 2021-02-24
  • 2022-09-06
相关资源
最近更新 更多