我有一个使用嵌入式数据库的应用程序,还会为以下目录结构生成日志和原始指标:
/opt/myapp/data/
database/
logs/
raw_metrics/
我正在学习Docker并尝试“Dockerize”这个应用程序,我正在尝试找到一个装载/卷解决方案,为我实现以下目标:
myapp
个容器实例,嵌入式数据库都存储在同一个已安装的卷中。换句话说,所有容器实例都将其数据写入共享的database/
卷;和我想知道Docker-land的标准程序是什么。阅读官方Docker文档以及this article on Docker Volumes后,我的暂定方法是:
/opt/myapp
/opt/myapp/database
,并且我相信(如果我理解我所读的正确),所有容器实例将共享相同的数据库/opt/myapp/logs/containerX.log
文件等等。但是我对Docker容器中日志聚合的标准做法非常感兴趣! 此外,更重要的是,我不确定这个解决方案是否适用于多宿主场景,我在多个主机上运行了数十个/opt/myapp/logs/containerY.log
容器的Swarm /集群。我的Data Volume Container会在所有主机上神奇地同步myapp
卷吗?如果没有,那么为容器安装共享卷的解决方案是什么,无论它们运行的是什么主机?提前谢谢!
答案 0 :(得分:3)
有很多好问题。以下是我的一些答案。