是否可以在 docker 容器内访问容器的日志?
is it possible to get to the logs of the container while inside a docker container?
我的项目 运行 位于 docker 容器内 - web_container
我需要找到一种方法来通过项目获取 web_container
的日志
我尝试了 运行 命令 docker logs web_container >> file.log;
,但据我了解,在 docker 容器
中无法识别该命令
有没有办法在容器中获取日志?
日志存储在主机上,因此您无法在容器中访问它们。但是可以在容器内挂载 (docker run -v /var/lib/docker/containers:/whereever/you/want2/mount:ro
) 文件夹(首选只读)。
默认情况下它在这里 /var/lib/docker/containers/[container-id]/[container-id]-json.log
。
而您可以从容器内部使用 cat /proc/self/cgroup | grep -o -e "docker-.*.scope" | head -n 1 | sed "s/docker-\(.*\).scope/\1/"
获取容器 ID。 (也许取决于你的系统,反正它在 /proc/self/cgroup
)。
备注:
这是对您的问题的技术上可行的答案。对于大多数用例,David 和 The Fool 的评论是解决该问题的更优雅的方法。
我的项目 运行 位于 docker 容器内 - web_container
我需要找到一种方法来通过项目获取 web_container
的日志
我尝试了 运行 命令 docker logs web_container >> file.log;
,但据我了解,在 docker 容器
有没有办法在容器中获取日志?
日志存储在主机上,因此您无法在容器中访问它们。但是可以在容器内挂载 (docker run -v /var/lib/docker/containers:/whereever/you/want2/mount:ro
) 文件夹(首选只读)。
默认情况下它在这里 /var/lib/docker/containers/[container-id]/[container-id]-json.log
。
而您可以从容器内部使用 cat /proc/self/cgroup | grep -o -e "docker-.*.scope" | head -n 1 | sed "s/docker-\(.*\).scope/\1/"
获取容器 ID。 (也许取决于你的系统,反正它在 /proc/self/cgroup
)。
备注: 这是对您的问题的技术上可行的答案。对于大多数用例,David 和 The Fool 的评论是解决该问题的更优雅的方法。