如何解决docker logs无法实时输出脚本打印的内容

 更新时间:2024年07月01日 09:32:19   作者:小冻子  
这篇文章主要介绍了如何解决docker logs无法实时输出脚本打印的内容问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

docker logs无法实时输出脚本打印内容

背景&问题

我在docker-compose.yml的command参数后面加入了一行运行python脚本的命令:

command:python test.py

那么这条命令会在container生成的时候就开始运行。

但是通过docker logs -f 命令来查看日志时,我发现py脚本里通过print打印出来的东西并不会实时显示出来,而是程序执行完了才会显示出来,这并不是我想要的结果。

但如果进入container手动执行python脚本,就可以实时打印出来。

解决

在网上查找资料之后发现,在这种情况下,python会默认缓冲其输出,所以想要无缓冲输出,那么加一个“-u” 参数即可:

command: python -u test.py

这个时候再通过docker logs -f 来查看日志时,你就会看到实时打印出来的结果

问题解决!

docker logs不打印python程序输出

docker logs --tail 50 --follow a8

即使容器在正常运行,也不会有输出打印出来,等也没用,且不定时的会打印一两次,最后才发现,原来是python的IO有缓冲,stdout堵住了导致了

只需在python代码中修改print(flush=True)即可,如果是用的gunicorn或者logging等,需要重新配置下

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • yum下载docker安装包安装到离线机器的实例代码详解

    yum下载docker安装包安装到离线机器的实例代码详解

    本文通过实例代码给大家介绍了yum下载docker安装包,安装到离线机器,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-12-12
  • docker中安装elasticsarch 等镜像的过程

    docker中安装elasticsarch 等镜像的过程

    这篇文章主要介绍了docker中安装elasticsarch 等镜像,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • 教你一分钟搞定docker+redis哨兵模式

    教你一分钟搞定docker+redis哨兵模式

    这篇文章主要介绍了教你一分钟搞定docker+redis哨兵模式,本文主要讲解一主二从三哨兵,特将其部署到一台机器上,并通过端口区分,需要的朋友可以参考下
    2023-03-03
  • Docker如何使用OpenvSwitch网桥

    Docker如何使用OpenvSwitch网桥

    本篇文章主要介绍了Docker如何使用OpenvSwitch网桥,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Docker容器之间的通信的方法实现

    Docker容器之间的通信的方法实现

    本文主要介绍了Docker容器之间的通信的方法实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 腾讯云服务器docker开启端口后无法访问的解决方法

    腾讯云服务器docker开启端口后无法访问的解决方法

    本文主要介绍了腾讯云服务器docker开启端口后无法访问的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 详解如何使用Docker打包Python项目

    详解如何使用Docker打包Python项目

    Docker是一种开源的容器化平台,可以将应用程序及其依赖项打包到一个轻量级、可移植的容器中,通过使用Docker,可以简化Python项目的部署和运行,提高开发效率和应用程序的可移植性,本文将介绍如何使用Docker来打包Python项目,需要的朋友可以参考下
    2023-11-11
  • 解决docker run中使用 ./ 相对路径挂载文件或目录失败的问题

    解决docker run中使用 ./ 相对路径挂载文件或目录失败的问题

    这篇文章主要介绍了解决docker run中使用‘./‘相对路径挂载文件或目录失败的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • docker入门教程(利用docker部署web应用)

    docker入门教程(利用docker部署web应用)

    docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以放笔,书包可以放书,可以把hello word放在docker中,可以把网站放入docker中,可以把任何想得到的程序放在docker中,这篇文章主要介绍了docker入门(利用docker部署web应用),需要的朋友可以参考下
    2023-02-02
  • 使用Docker compose启动自定义jar包的步骤详解

    使用Docker compose启动自定义jar包的步骤详解

    这篇文章主要介绍了使用Docker compose启动自定义jar包的步骤,首先我们需要编写一个docker-compose.yml文件来定义我们的服务传到我们的云服务器上,本文给大家分享示例代码,感兴趣的朋友一起看看吧
    2024-03-03

最新评论