docker-compose,新容器版本和日志持久性

时间:2017-04-14 15:07:16

标签: docker docker-compose

与docker-compose相当常见的用例:

  • 使用git从存储库中提取的应用程序代码。
  • 一个看起来像这样的docker-compose.yml:

version: '2' services: web: build: ./myapp

当我想部署新版本时,我只需提取最新版本的代码,然后制作docker-compose up --build -d

几乎完美无缺,除非每次进行更新,它都会删除使用docker-compose logs可访问的过去日志。我理解为什么docker的行为方式如此(即使docker-compose重新创建一个具有相同名称的容器,它仍然是一个全新的容器,因此它的逻辑日志会被刷新)。但是,它确实不实用。

任何人都有解决方案吗?优选地,涉及修改图像或使用卷来存储日志。 (因为这应该是docker日志的全部内容,而不必担心这一点。)

2 个答案:

答案 0 :(得分:0)

您可以在启动容器时将输出重定向到日志文件,如:

docker-compose up --build --no-color --force-recreate &> logs &

而不是docker-compose logs,您可以tail logs随时随地。{/ p>

答案 1 :(得分:0)

我认为您最好的选择是使用Docker文档中描述的其中一个Logging Driver选项: https://docs.docker.com/engine/admin/logging/overview/

如果这不是一个可行的解决方案,你能否为我的目标和障碍提供更多背景信息?