Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Nginx docker中,如何仅从error.log中查看日志_Docker_Nginx - Fatal编程技术网

在Nginx docker中,如何仅从error.log中查看日志

在Nginx docker中,如何仅从error.log中查看日志,docker,nginx,Docker,Nginx,Nginx Docker文件配置为将error.log发送到/dev/stderr RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log 当我们运行docker logs--tail=10-f nginx时,它同时显示错误日志和访问日志。是否有docker命令,因此我只能查看error.log或stderr的日志?尝试此命令以仅获取

Nginx Docker文件配置为将error.log发送到/dev/stderr

RUN ln -sf /dev/stdout /var/log/nginx/access.log 
    && ln -sf /dev/stderr /var/log/nginx/error.log

当我们运行docker logs--tail=10-f nginx时,它同时显示错误日志和访问日志。是否有docker命令,因此我只能查看error.log或stderr的日志?

尝试此命令以仅获取error.log:

docker logs -f nginx 1>/dev/null
这一个用于access.log:

docker logs -f nginx 2>/dev/null

从您在问题中添加的Dockerfile片段来看,您似乎正在使用官方的NGINX图像

默认情况下,NGINX映像配置为将主NGINX访问和错误日志发送到Docker日志收集器。这是通过将它们链接到stdout和stderr来实现的,这将导致来自这两个日志的所有消息都存储在docker主机上的文件/var/lib/docker/containers/\/\-json.log中

一种方法是使用docker API。

您可以在
/etc/default/docker
中启用docker API并以这种方式查询日志:

DOCKEROPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'
然后:

http://:4243/containers//logs?stderr=1
见:


您是否使用默认的NGINX docker映像?或者你自己的?文件/etc/default/docker应该在主机中,对吗?我在Ubuntu 18.04中找不到它。可能在其他地方吗?
http://<docker host>:4243/containers/<container name>/logs?stderr=1