【问题标题】:View error.log and access.log in Apache in Docker?在 Docker 中查看 Apache 中的 error.log 和 access.log?
【发布时间】:2020-04-24 19:29:47
【问题描述】:

我的 Docker 在其 vhost.conf 中有以下内容

<VirtualHost *:80>
    // ...(snipped)
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

通过docker exec/var/log/apache 中查看这些,执行ls -l 显示:

access.log -> /dev/stdout
error.log -> /dev/stderr

这是什么意思,是否可以查看其内容?

【问题讨论】:

    标签: apache docker logging


    【解决方案1】:

    容器上的docker logs 将显示此日志输出。

    /dev/stdout/dev/stderr 是特殊的“文件”,它们实际上分别指向当前进程的标准输出和错误通道(它们本身应该是/proc/self/fd/1/proc/self/fd/2 的符号链接)。除非有什么东西导致它们被重定向到其他地方,否则这将成为容器的主要输出,并被 Docker 的内部日志子系统捕获。

    如果您想在本地系统上将这些作为具体文件捕获,您可以通过 /var/log/apache 绑定挂载本地目录(使用 docker run -v 选项或 Docker Compose ports: 选项)。这将导致(最初为空的)目录隐藏容器中该目录的内容,并且当 HTTP 守护进程写出其日志时,它们将作为与主机共享的目录中的真实文件出现。

    您在正常操作中不需要docker exec

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      • 2011-11-10
      • 2016-08-02
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多