【问题标题】:Editing Files inside of a Docker Container在 Docker 容器内编辑文件
【发布时间】:2018-05-09 11:22:54
【问题描述】:

如何编辑已下载到主机上的 docker 容器内的配置文件?

我正在使用this tutorial,但我不确定在哪里可以找到和编辑 traefik.toml 文件

【问题讨论】:

标签: docker docker-compose traefik


【解决方案1】:

有多种方法可以实现:

可以通过运行命令进入容器:

docker exec -it <container-name> bash

请注意,根据容器的不同,您可能没有简单的文本编辑器..


另一种选择是通过运行将要编辑的文件从容器复制到主机上:

docker cp <container-name>:/path/to/file/in/container .

编辑文件,然后将其复制回容器中:

docker cp <file> <container-name>:/path/to/file/in/container

第三个选项是创建一个bind mount,它将有效地将文件从容器暴露到主机上

docker run -v $(pwd)/files:/dir/containing/file/in/container ...

这样会暴露“files”目录下的container文件夹,可以在host中编辑文件,直接反映到container内部。

【讨论】:

  • 你有我的支持,但重要的是要注意,选项 1 不适用于 traefik 容器,这是有问题的。例如,您甚至无法执行docker exec -it &lt;container-name&gt; /bin/sh,它为您提供了容器的默认外壳。我稍微确信(虽然无法完全解释)它没有任何你可以执行的 shell 来执行任何形式的docker exec -it
  • 你可能是对的。 traefik镜像是基于scratch的
  • 第三个选项将一个文件夹从主机绑定到容器中,而不是相反。
【解决方案2】:

我遇到了同样的问题,并找到了一个很好的方法来处理这个问题。使用 VS Code 和 docker 扩展,让容器运行。在容器列表中,右键单击要编辑的容器。选择:附加 Visual Studio 代码。

应该打开另一个直接附加到容器的 VS Code 实例。单击打开文件夹并导航到要编辑的文件。倒一杯好喝的黑啤酒,冷静片刻,然后继续编码。 :)

【讨论】:

  • 这适用于 Windows 容器吗?获取用户名/密码错误。
  • 这个 VS Code 特性的文档是available here btw。但是,您的扩展程序不会继续使用,需要将它们安装在容器内。
  • 注意需要安装VS代码扩展Remote - Containers marketplace.visualstudio.com/…
【解决方案3】:

是的,也适用于 Windows 容器。

  1. 在崩溃的容器中运行 cmd 以防止退出:

    docker run -dit docker/image cmd

  2. 使用 docker 扩展启动 VS Code。每个文件都有一个打开和下载的选项,很不错。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 2014-08-24
    相关资源
    最近更新 更多