Ami*_*wal 14 linux elasticsearch docker
我正在docker容器中运行elasticsearch.
在为ssl和shield配置elasticsearch时,我的elasticsearch.yml文件被非法输入,TAB而不是a space.
现在我的docker容器没有启动并出现以下错误:
{1.4.4}: Setup Failed ...
- SettingsException[Failed to load settings from [file:/elasticsearch/config/elasticsearch.yml]]
IOException[Tabs are illegal in YAML. Did you mean to use whitespace character instead?]
org.elasticsearch.common.settings.SettingsException: Failed to load
settings from [file:/elasticsearch/config/elasticsearch.yml]
at org.elasticsearch.common.settings.ImmutableSettings$Builder.loadFromStream(ImmutableSettings.java:947)
at org.elasticsearch.common.settings.ImmutableSettings$Builder.loadFromUrl(ImmutableSettings.java:931)
at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:77)
at org.elasticsearch.bootstrap.Bootstrap.initialSettings(Bootstrap.java:106)
at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:177)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)
Caused by: java.io.IOException: Tabs are illegal in YAML. Did you
mean to use whitespace character instead?
at org.elasticsearch.common.settings.loader.YamlSettingsLoader.load(YamlSettingsLoader.java:44)
at org.elasticsearch.common.settings.ImmutableSettings$Builder.loadFromStream(ImmutableSettings.java:944)
... 5 more
Run Code Online (Sandbox Code Playgroud)
如何elasticsearch.yml在不丢失数据或替换elasticsearch.yml现有容器中的文件的情况下编辑或替换它?
BMi*_*tch 20
您可以将文件复制出来,然后将其复制回容器(即使容器已停止)docker cp $cont_name:/path/in/container /path/on/host,然后复制出来然后复制出来docker cp /path/on/host $cont_name:/path/in/container.
替换它而不丢失数据
理想情况下,这些数据应存储在从单独的数据卷容器安装的路径中(这些容器不运行,它们只是创建的)。这样,您的主服务容器(那个elasticsearch)就可以崩溃并随意更换。
在该配置中(从卷容器挂载数据),您可以elasticsearch使用新的配置文件重建映像,然后从那里恢复。
在您当前的配置中,如果这些数据不在 Dockerfile 声明的 VOLUME 中,您可以执行以下操作:
[docker commit <stoppped_container_id>][1] newimage| 归档时间: |
|
| 查看次数: |
8246 次 |
| 最近记录: |