当前位置: 首页 > 知识库问答 >
问题:

如何将文件复制到已停止的docker容器

淳于博文
2023-03-14

我正在从docker容器中运行elasticsearch。

在为ssl和屏蔽配置elasticsearch时,我的elasticsearch.yml文件获得非法条目,即选项卡而不是空格
现在我的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

如何在不丢失数据的情况下编辑elasticsearch.yml或替换它,或替换现有容器中的elasticsearch.yml文件?

共有1个答案

况弘新
2023-03-14

您可以通过docker cp$cont_name:/path/in/container/path/on/host复制文件,然后再复制到容器中(即使容器已停止),然后使用docker cp/path/on/host$cont_name:/path/in/container复制文件。

 类似资料:
  • 问题内容: 为了解决我的应用程序的错误并调试问题,该应用程序分布在多个容器中,我经常在容器中编辑文件: 我完全懒惰并安装nano并直接在容器中进行编辑,或者 我将cp文件从容器中移出,对其进行编辑,复制并重新启动容器 这些是进入容器构建新内容之前的中间步骤,这比上述操作要花很多时间(当然,这只是中间/摆弄)。 现在,我经常破坏容器的启动程序,在这种情况下,它是节点脚本或python Web服务器脚

  • 试图修复我的应用程序在多个容器上拆分的错误和调试问题,我经常编辑容器中的文件: > 要么我完全懒惰,直接在容器中安装nano并进行编辑,要么 我将文件从容器中取出,编辑它,复制回来,然后重新启动容器 这些都是为容器构建新内容之前的中间步骤,这比执行上述操作要长得多(当然,这只是中间步骤)。 现在我经常破坏容器的启动程序,在破坏情况下是节点脚本或python webserver脚本,两者通常都因语法

  • 我正在考虑使用Docker在持续集成(CI)服务器上构建我的依赖项,这样我就不必在代理本身上安装所有的运行时和库。 为了实现这一点,我需要将在容器中构建的构建构件复制回主机中。有可能吗?

  • 问题内容: 我使用以下命令从映像启动docker容器: 当完成后,容器停止(我想这已停止),但它并没有被删除,因为我可以用这个命令来查看它: 有什么办法可以使用相同的参数将此容器保持由生成的数据? 问题答案: 是的,当初始命令完成执行后,容器将停止。 您可以使用以下方法启动已停止的容器: 如果要查看命令的输出,则应添加选项: PS。有一个,但用于重新启动正在运行的容器-我相信情况并非如此。

  • 这个问题展示了如何从停止的容器中复制文件。这要求我知道文件的完整路径,包括其文件名。我知道要从中复制文件的目录,但我不知道它的文件名,因为它是动态生成的。如何列出已停止Docker容器中目录中的文件? 如果Docker容器正在运行,那么下面的Docker命令非常有效。但是,如果Docker容器停止,它将失败。 注意:文件不存储在持久卷中。