【问题标题】:Issue in submitting Python Script run inside Docker from local machine (outside)从本地机器(外部)提交在 Docker 内运行的 Python 脚本时出现问题
【发布时间】:2021-03-11 12:04:04
【问题描述】:

我正在尝试从外部(从托管 docker run 的同一本地计算机)在正在运行的 docker 内运行 python 作业。

当我进入 docker 并运行代码时,它会按预期创建日志:

进入docker的命令:

docker exec -it pytorch_container /bin/bash

我正在运行的随机Python代码(将日志写入同一目录以查看是否运行成功):

#importing module 
import logging 
  
#Create and configure logger 
logging.basicConfig(filename="newfile.log", 
                    format='%(asctime)s %(message)s', 
                    filemode='w') 
  
#Creating an object 
logger=logging.getLogger() 
  
#Setting the threshold of logger to DEBUG 
logger.setLevel(logging.DEBUG) 
  
#Test messages 
logger.debug("Harmless debug Message") 
logger.info("Just an information") 
logger.warning("Its a Warning") 
logger.error("Did you try to divide by zero") 
logger.critical("Internet is down") 

但是当我从外部提交 python 作业时,它既没有抛出任何错误,也没有运行(通过看到没有创建日志文件来推断)。

从 docker 外部运行 python 代码的命令:

sudo docker exec -ti pytorch_container python /workspace/test/test.py

请帮忙!

【问题讨论】:

  • 你在哪里检查文件,在主机上还是在 docker 内部?
  • 该文件在 docker 内,并试图在 docker 内运行它但从外部提交命令。
  • sudo docker exec -ti pytorch_container cat newfile.log 的输出是什么?
  • 没有newfile.log 只生成。当我进去一看。所以程序似乎没有运行,但也没有显示任何输出。
  • 你能不能也配置一个控制台记录器,看看你运行时控制台是否有输出

标签: python docker ubuntu containers


【解决方案1】:

您的问题是您在脚本中使用了相对路径。因此,当您运行命令时,输出将在容器的当前目录中,而不是放置脚本的位置

sudo docker exec -ti pytorch_container python /workspace/test/test.py

您可以在下面查看当前目录正在使用什么

sudo docker exec -ti pytorch_container pwd

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-20
    • 2023-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 2018-08-14
    相关资源
    最近更新 更多