默认情况下,docker logs
或者docker service logs
显示命令的输出,就像在终端中以交互方式运行命令时一样。UNIX和Linux命令通常开在运行时间上三个I / O流,所谓的 STDIN
,STDOUT
和STDERR
。STDIN
是命令的输入流,可能包括键盘输入或其他命令输入。STDOUT
通常是命令的正常输出,STDERR
通常用于输出错误消息。默认情况下,docker logs
显示命令STDOUT
和 STDERR
。要阅读有关I / O和Linux的更多信息,请参阅有关I / O重定向的 Linux Documentation Project文章。
在某些情况下,docker logs
除非您采取其他步骤,否则可能无法显示有用信息。
-
如果使用将日志发送到文件,外部主机,数据库或其他日志记录后端的日志记录驱动程序,则
docker logs
可能无法显示有用信息。 -
如果您的映像运行非交互式进程(如Web服务器或数据库),则该应用程序可能会将其输出发送到日志文件而不是
STDOUT
和STDERR
。
使用nginx 镜像查看 它的日志文件状态
[root@master ~]# docker logs songssssdfsdf / # ls bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var / # ll /var/log/nginx/access.log /bin/sh: ll: not found / # ls -l /var/log/nginx/access.log lrwxrwxrwx 1 root root 11 Jan 31 23:32 /var/log/nginx/access.log -> /dev/stdout / # cd /var/log/ /var/log # ls nginx /var/log # cd nginx/ /var/log/nginx # sl /bin/sh: sl: not found /var/log/nginx # ls access.log error.log /var/log/nginx # ls -l error.log lrwxrwxrwx 1 root root 11 Jan 31 23:32 error.log -> /dev/stderr