0

当我使用包含卷规范的命令创建具有 2 个所需实例的容器组时,如下所示:

> ... -v log_vol:/opt/ibm/logs --env
> LOG_LOCATIONS=/opt/ibm/logs/messages.log,/opt/ibm/logs/debug.log,/opt/ibm/logs/trace.log
> -e TRACE_LEVEL=*~info -e MAX_LOG_FILES=5 -e MAX_LOG_FILE_SIZE=20 ...

在这种情况下,该组的每个单独的 running-container-instance 将有一个类似的目录/opt/ibm/logs/来存储日志。

当单个容器实例中的应用程序生成日志时,日志数据会丢失,因为它被挂载到名为log_vol. 日志在每个新条目上都会被替换。

  • 有人可以建议我如何处理它吗?
  • 有什么方法可以在容器实例创建后附加卷规范?
4

1 回答 1

2

在这种情况下,最好将卷视为类似于共享网络驱动器的东西,不同的容器在不同的主机上运行。如果进程假设它们是唯一写入文件的进程,并在每次写入时缓存/覆盖,这将是结果。

也许相反,让容器/程序写入类似的东西,/opt/ibm/logs/messages.$HOSTNAME.log以便他们拥有自己的日志文件的假设是正确的?或者类似地,让容器/opt/ibm/logs/$HOSTNAME/在启动时为自己创建,然后messages/debug/trace.log在那里写入?

于 2016-04-21T18:10:16.093 回答