hel*_*ert 62
使用docker logs.它也适用于已停止的容器,并捕获容器主进程的整个STDOUT和STDERR流:
$ docker run -d --name test debian echo "Hello World"
02a279c37d5533ecde76976d7f9d1ca986b5e3ec03fac31a38e3dbed5ea65def
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
49daa9d41a24 debian "echo test" 2 minutes ago Exited (0) 2 minutes ago test
$ docker logs -t test
2016-04-16T15:47:58.988748693Z Hello World
Run Code Online (Sandbox Code Playgroud)
小智 14
您甚至可以使用以下命令从退出的容器中复制日志:
dockercpcontainer_name:path_of_file_in_container destination_path_locally
例如:
docker cp sravya:/tmp/report /root/mylog
Run Code Online (Sandbox Code Playgroud)
kli*_*iew 13
docker logs --tail=50 <container id> 最后五十行 - 当你的容器已经运行了很长时间时很有用.
小智 9
@icyerasor上面的评论实际上帮助我解决了这个问题。在我的特殊情况下,已停止运行的容器没有容器名称,只有容器 ID。
找到日志的步骤也在这篇文章中列出
docker ps -a cat /var/lib/docker/containers/<container id>/<container id>-json.log容器 ID 应该类似
e03ef95c49e6686408b6033ed60b3e1e943e9115d78f51f546ecc921822454a6和不类似e03ef95c49e6
要直接查看退出容器的日志文件,滚动到文件末尾,我使用:
docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less +G
Run Code Online (Sandbox Code Playgroud)
运行为 ./viewLogs.sh CONTAINERNAME
这种方法比docker logs基于方法的优点是直接打开文件,而不是流式传输。
sudo 是必要的,因为 LogPath/File 通常是在 root 拥有的
| 归档时间: |
|
| 查看次数: |
40881 次 |
| 最近记录: |