在Bluemix上 - 处理容器组实例的卷

时间:2016-03-09 07:41:43

标签: docker containers ibm-cloud volumes

当我使用包含卷规范的命令创建具有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的共享卷时丢失。每个新条目都会替换日志。

  • 有人可以建议我如何处理吗?
  • 我们是否有任何方法可以附加卷规范后容器实例创建?

1 个答案:

答案 0 :(得分:2)

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

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