gpt4 book ai didi

directory - dokku - 我的应用程序目录在哪里

转载 作者:IT老高 更新时间:2023-10-28 21:43:47 26 4
gpt4 key购买 nike

我正在尝试访问我的 Node.js 应用程序的日志,该应用程序写入应用程序目录内的文件 mylogfile.log 中。使用 find/-type f -name mylogfile.log 我能够看到这个输出:

/var/lib/docker/aufs/diff/0303e86afdc58e13b5afcc07ea3694e0e9e6d5e5cf8530a0854a76fbe2baf574/app/mylogfile.log
/var/lib/docker/aufs/diff/a9a0dab44456acd8b43915ed686c282b778ab99df31f62076082e121274ef6e2/app/mylogfile.log
/var/lib/docker/aufs/mnt/0303e86afdc58e13b5afcc07ea3694e0e9e6d5e5cf8530a0854a76fbe2baf574/app/mylogfile.log

这些目录是什么(如果这是以前的应用程序推送,为什么我什至需要它们,我真的不想用它们淹没硬盘驱动器的空间),其中哪个是我当前运行的应用程序的目录?

...mnt/...diff/ 内还有更多类似神秘名称的文件夹。

最佳答案

请注意,Docker 容器的文件系统不打算供用户从主机访问。实际上这很复杂,因为 Docker 使用分层的写时复制文件系统(如 AUFS 在您的情况下,但这是特定于发行版的;除 Ubuntu 之外的大多数发行版都使用 Devicemapper 而不是 AUFS、IIRC)。您会看到文件系统层,每一层都包含与一个父层的差异。

如果您想在应用程序容器中记录内容,您应该考虑以下可能性之一:

  1. 将您的日志文件放入一个。您可以将主机目录挂载为卷并在其中写入文件。您需要在创建容器时指定挂载,使用 -v标志(-v <host-directory>:<dir in container>):

    docker run -v /var/log/myapplication:/path/to/app/in/container myimage
  2. 将您的日志写入 stdout 并让 Docker 处理这些日志。您可以使用

    访问日志(是的,它只是一个大文件)
    docker logs <container-name>

    您还可以在 Docker 运行时目录(通常为 /var/lib/docker)中的 /var/lib/docker/containers/<container-id>/<container-id>-json.log 中找到日志文件。 .但是,此日志文件不会自动轮换,因此它可能会变大。

  3. 使用外部日志服务将日志数据写入网络中的另一个位置。典型的候选人是 syslog (老派)或设置类似 LogstashGraylog .

关于directory - dokku - 我的应用程序目录在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30059982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com