我有一个dockerized Web应用程序,我正在HA设置中运行。我有一个cron设置,每隔午夜运行dockup
来备份我存储在其他容器上的重要信息。现在我想从我的Web应用程序备份和聚合我的日志。问题是,我该怎么办?如果我使用Dockerfile中的VOLUME
键将/logs
公开给主机,则会发生冲突,因为/logs
容器上会有两个dockup
目录?< / p>
答案 0 :(得分:2)
我检查过dockup。它没有/ logs目录。似乎它使用/ var / logs作为日志输出。
$ docker run -it --name dockup borja/dockup bash
否则,是的,这将是一个问题,因为卷将以所提到的名称安装,并且当前容器进程也将记录到该文件夹。不好。
使用像流利的日志容器。在这个tutorial中,它还提供了对像Dockup这样的S3存储桶的写入。教程可以是创始人here。
调整您的容器,例如使用符号链接将日志记录或中继到不同的卷。
访问日志不是通过容器而是使用本机docker并自行将其复制到S3或在本地挂载的日志文件上运行dockup。
$ docker logs container/name > logfile.log
$ docker run --rm \
--env-file env.txt \
-v $(pwd)/logfile.log:/customlogs/logfile.txt \
--name dockup borja/dockup
现在,您可以将文件夹/ customlogs /作为env.txt中的备份路径。