Python/Docker: 如何将 python 日志模块与 docker 一起使用?
Python/Docker: How to use python logging module with docker?
我有一个简单的设置,python 的日志记录模块设置在 python 应用程序中,如下所示:
app_logger = logging.getLogger('main_thread')
file_handler = RotatingFileHandler('/home/pi/FaunderGateway_Log.log', maxBytes=10000000, backupCount=5)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(name)s - %(message)s')
file_handler.setFormatter(formatter)
app_logger.addHandler(file_handler)
我有一个 RotatingFileHandler,其绝对路径为“/home/pi/FaunderGateway_Log.log”(如果有人想知道,此应用程序将 运行ning 在 raspberry pi 上),现在我'我正在尝试使用 docker.
将应用程序容器化
构建并尝试 运行 我的容器后,出现错误:
[Errno 2] No such file or directory: '/home/pi/FaunderGateway_Log.log'
现在,我知道 docker 在容器中有自己的文件系统,与主机的 (pi) 文件系统分开,但我想告诉 docker 让我的python app在主机绝对路径下正常登录/home/pi/.如何实现?
我读了一些其他提到卷的帖子,但我不太了解它们。
我正在使用此命令 运行 我的容器:
sudo docker run --privileged fg
--privileged 标志使我可以访问 pi 上的 /dev/mem 文件,以进行 GPIO 操作。
更新:请注意,我希望我的 docker 容器在 主机路径“/home/pi” 中创建日志文件,我不不想在容器本身内创建一个“/home/pi”目录。
尝试:
docker run -v [host_path]:[container_path]
在您的情况下 host_path
是 /home/pi
,并将 container_path
更改为容器中的日志文件目录。
卷可以解决问题。容器有它自己的文件系统。使用卷就像将包含主机文件的笔式驱动器连接到 docker 容器。
对于你的情况,你可以这样做:
sudo docker run --privileged fg -v /home/pi:/pi
现在,这将在容器的根目录中创建一个名为 pi
的文件夹,该文件夹链接到主机中的 /home/pi
。
因此,在您的 python 应用程序中指定 /pi
作为目录。
我有一个简单的设置,python 的日志记录模块设置在 python 应用程序中,如下所示:
app_logger = logging.getLogger('main_thread')
file_handler = RotatingFileHandler('/home/pi/FaunderGateway_Log.log', maxBytes=10000000, backupCount=5)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(name)s - %(message)s')
file_handler.setFormatter(formatter)
app_logger.addHandler(file_handler)
我有一个 RotatingFileHandler,其绝对路径为“/home/pi/FaunderGateway_Log.log”(如果有人想知道,此应用程序将 运行ning 在 raspberry pi 上),现在我'我正在尝试使用 docker.
将应用程序容器化构建并尝试 运行 我的容器后,出现错误:
[Errno 2] No such file or directory: '/home/pi/FaunderGateway_Log.log'
现在,我知道 docker 在容器中有自己的文件系统,与主机的 (pi) 文件系统分开,但我想告诉 docker 让我的python app在主机绝对路径下正常登录/home/pi/.如何实现?
我读了一些其他提到卷的帖子,但我不太了解它们。
我正在使用此命令 运行 我的容器:
sudo docker run --privileged fg
--privileged 标志使我可以访问 pi 上的 /dev/mem 文件,以进行 GPIO 操作。
更新:请注意,我希望我的 docker 容器在 主机路径“/home/pi” 中创建日志文件,我不不想在容器本身内创建一个“/home/pi”目录。
尝试:
docker run -v [host_path]:[container_path]
在您的情况下 host_path
是 /home/pi
,并将 container_path
更改为容器中的日志文件目录。
卷可以解决问题。容器有它自己的文件系统。使用卷就像将包含主机文件的笔式驱动器连接到 docker 容器。
对于你的情况,你可以这样做:
sudo docker run --privileged fg -v /home/pi:/pi
现在,这将在容器的根目录中创建一个名为 pi
的文件夹,该文件夹链接到主机中的 /home/pi
。
因此,在您的 python 应用程序中指定 /pi
作为目录。