在Nginx docker中,如何仅从error.log中查看日志
Nginx Docker文件配置为将error.log发送到/dev/stderr在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的日志?尝试此命令以仅获取
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