日志数据持久化

为了保证日志数据跨容器重新启动,该镜像挂载/var/lib/elasticsearch——这是Elasticsearch将其数据存储为卷的目录。

但是,您可能希望使用专用数据卷来保存此日志数据,例如便于备份和恢复操作。

这样做的一种方法是使用Docker-v选项来挂载Docker命名卷,如:

$ sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 \ -v elk-data:/var/lib/elasticsearch --name elk sebp/elk

这个命令将命名卷elk-data挂载到/var/lib/elasticsearch(如果不存在,则自动创建卷;也可以使用docker volume create elk-data手动创建)。

注意-设计上,Docker从不自动删除卷(例如,当不再被任何容器使用)。虽然这避免了数据意外丢失,但这也意味着,如果您没有正确管理卷的话,事情可能变得混乱(例如,在使用docker rm删除容器时也使用-v选项来删除卷……记住,只要至少一个容器仍然引用它,即使它没有运行,实际卷也不会被删除。您可以使用docker volume ls跟踪现有卷。

参见Managing Data in ContainersDocker In-depth: Volumes了解更多信息。

在权限方面,Elasticsearch数据由镜像的elasticsearch用户创建,使用UID 991和GID 991。

有一种已知情况,当SELinux在强制模式下运行时,拒绝访问挂载的卷。解决方法是使用setenforce 0命令在permissive模式下运行SELinux。

results matching ""

    No results matching ""