如何解决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等,需要重新配置下

总结

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

您可能感兴趣的文章:

相关文章

  • CentOS7  docker服务无法启动解决方案及实现步骤

    CentOS7 docker服务无法启动解决方案及实现步骤

    这篇文章主要介绍了CentOS7 docker服务无法启动解决方案及实现步骤的相关资料,这里对Docker 服务无法启动做了详细的排查工作及流程,并附解决办法,需要的朋友可以参考下
    2016-12-12
  • Docker Alpine镜像时区问题完美解决方案

    Docker Alpine镜像时区问题完美解决方案

    这篇文章主要介绍了Docker Alpine镜像时区问题完美解决方案,本文给大家分享两种解决方案供大家参考,需要的朋友可以参考下
    2021-04-04
  • 使用ssh连接docker服务器的方法

    使用ssh连接docker服务器的方法

    这篇文章主要介绍了使用ssh连接docker服务器的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 在Ubuntu中安装Docker教程

    在Ubuntu中安装Docker教程

    这篇文章主要介绍了在Ubuntu中安装Docker教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 无网络docker镜像迁移的实现

    无网络docker镜像迁移的实现

    本文主要介绍了无网络docker镜像迁移的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-06-06
  • 解决docker run 或者 docker restart 启动镜像就自动退出

    解决docker run 或者 docker restart 启动镜像就自动退出

    这篇文章主要介绍了解决docker run 或者 docker restart 启动镜像就自动退出的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker部署MySQL镜像的保姆级教程

    Docker部署MySQL镜像的保姆级教程

    docker是一种容器化技术,可以将应用程序及其依赖项打包成一个独立的可移植容器,mysql是一个流行的关系型数据库管理系统,在Docker中部署MySQL镜像可以方便地创建和管理MySQL数据库实例,本文给大家介绍了Docker部署MySQL镜像的教程,需要的朋友可以参考下
    2025-06-06
  • 如何使用Docker部署Go Web应用的实现

    如何使用Docker部署Go Web应用的实现

    这篇文章主要介绍了如何使用Docker部署Go Web应用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 如何用docker部署kafka

    如何用docker部署kafka

    本文详细介绍了使用Docker快速搭建Kafka集群的步骤,包括选用wurstmeister/kafka镜像、配置文件修改、集群启动与管理,适合需要在Docker环境中部署Kafka的开发者参考
    2024-09-09
  • Docker自定义安装更改默认安装位置简单方法

    Docker自定义安装更改默认安装位置简单方法

    安装Docker的过程相对简单,你只需要双击下载的安装程序并按照提示进行安装即可。在安装过程中,你可以选择自定义安装选项,这篇文章主要给大家介绍了关于Docker自定义安装更改默认安装位置的简单方法,需要的朋友可以参考下
    2024-01-01

最新评论