gpt4 book ai didi

docker - Docker容器记录

转载 作者:行者123 更新时间:2023-12-02 18:20:36 26 4
gpt4 key购买 nike

Docker日志有些我不理解的地方。

阅读文档,我发现默认情况下,Docker使用JSON File日志记录驱动程序。

By default, Docker captures the standard output (and standard error) of all your containers, and writes them in files using the JSON format



所以,如果我在做
docker run -it --name log1 alpine:latest

接下来(在容器内)一个简单的 ps -ef,我可以使用 docker logs log1在日志中查看命令的结果

现在,我保持容器运行。如果在另一个 session 中
docker exec -it log1 ps -ef

没有更多信息到达日志中。

即使
docker exec -it log1 sh
ps -ef(在容器内部)在日志中不产生任何结果。

返回第一个 session ,所有命令输出将再次记录。

我有什么误会?

最佳答案

我无法在Docker的网站上找到关于它的明确解释,但是对我来说,它看起来像是以下内容。

首先,当您启动容器(docker run)时,dockder为此分配了主进程(PID 1),并且在该进程不退出时,该容器被认为是 Activity 的。此过程具有自己的stdinstdoutstderr,它们被顺带连接到您的控制台(-it标志)。

这些是处理程序,它们由docker daemon收集和记录。

当您运行docker exec时,它将在容器中创建新进程,并且此新进程不会从stdin继承io处理程序(stdoutstderrPID 1)。因此,由docker exec创建的所有新 session 似乎都有各自独立的流,而没有被守护程序记录。

关于docker - Docker容器记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54254896/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com