如何将容器日志docker docker 到本地文件?

Noa*_*tin 0 logging docker docker-swarm

几天前我需要查看 docker 日志并通过docker service logs SERVICE | grep WHAT_I_NEED永远检查,所以我想从 docker swarm 下载容器日志并在本地检查这些日志。我发现可以通过以下方式找到Swarm中的容器日志:

码头检查 --format='{{.LogPath}}' $INSTANCE_ID

但我找不到从该位置下载日志的方法。

做:docker cp CONTAINER_ID:/var/lib/docker/containers/ABC/ABC-json.log ./告诉我路径不存在。我知道这条路径在 Swarm 中,但是如何从容器本身获取日志?还是有另一种方法可以将此文件直接复制到本地文件?

Sus*_*jee 5

尝试从终端运行这个:

docker logs your_container_name 2> file.log
Run Code Online (Sandbox Code Playgroud)

这会将容器日志重定向到本地文件file.log

  • 是的,日志文件实际上存在于运行 docker 的机器本地,并且执行“docker检查container_name”将获取日志路径。使用该逻辑,我尝试了以下操作,并能够检索您引用的文件:**`cp \`docker检查container_name | jq -r .[].LogPath\` .`** 这将复制当前位置的日志文件(由命令末尾的“.”引用)。您也可以选择位置。**注意**:由于日志文件存在于本地,因此不需要使用docker cp。简单的cp就可以了。:-) (2认同)