当前位置: 首页 > 面试题库 >

如何从主机编辑Docker容器文件?

白丁雨
2023-03-14
问题内容

现在,我找到了一种将主机文件公开到容器的方法(-v选项),我想做相反的事情:

如何使用主机编辑器从正在运行的容器中编辑文件?

sshfs可能可以完成这项工作,但是由于正在运行的容器已经是某种主机目录,所以我想知道是否存在可移植的方式(在aufs,btrfs和设备映射器之间)?


问题答案:

尽管有可能,其他答案解释了如何做,但应尽可能避免在联合文件系统中编辑文件。

您对卷的定义不太正确-与其说是在主机上公开文件,不如说是绕过联合文件系统。例如,如果我这样做:

$ docker run --name="test" -v /volume-test debian echo "test"

/volume-test容器内的目录将不属于联合文件系统,而是位于主机上的某个位置。我没有指定主机上的位置,因为我可能不在乎-
我没有公开主机文件,只是创建了一个在容器和主机之间可共享的目录。您可以使用以下命令准确找到主机上的位置:

$ docker inspect -f "{{.Volumes}}" test
map[/volume_test:/var/lib/docker/vfs/dir/b7fff1922e25f0df949e650dfa885dbc304d9d213f703250cf5857446d104895]

如果您真的只需要对文件进行快速编辑以测试某些内容,请使用docker exec将其放入容器中并直接进行编辑,或者使用docker cp将文件复制出来,在主机上进行编辑然后复制回去。



 类似资料:
  • 我正在我的机器上的docker容器中运行服务器。我想从我的机器(主机)向容器内的服务器发送HTTP请求。当我在容器中使用HTTP发送GET请求时,它会检测服务器。但是,如果我向容器的IP地址发送相同的请求(这次是从容器外部的主机),它会告诉我: 或者这个: 下面是我启动容器时使用的命令: 以及我为发送请求而运行的Python脚本: 下面是我用来查找容器IP地址的命令: 我知道这个问题,但我没有使用

  • 我有一个docker容器运行良好。它在目录中生成一些文件。我需要这些文件做些测试。但当此容器停止时,所有内容都将被删除。所以我需要将这个文件从容器复制到主机。 我有一个python应用程序运行在生成文件的容器中。我需要一些命令或任何方式,通过这些命令,我可以在容器停止时将发送到结尾的主机。 为此,我可以使用命令,我尝试了它,但它给我一个错误,因为没有安装docker。 如何将文件从容器共享到主机?

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

  • 问题内容: 我成功使用以下方法将其炮击到Docker容器中: 现在我需要编辑文件,并且里面没有任何编辑器: 如何编辑文件? 问题答案: 就像注释中一样,没有默认的编辑器集-奇怪- 环境变量为空。您可以通过以下方式登录到容器: 并运行: 或使用以下Dockerfile: 交付的Docker映像已修剪到最低限度-因此,发货的容器未安装任何编辑器。这就是为什么需要手动安装它的原因。 编辑 我也鼓励你看过

  • 如何编辑主机上下载的docker容器中的配置文件? 我正在使用本教程,但不确定在哪里可以找到并编辑traefik.toml文件

  • 问题内容: 我有一个运行詹金斯的码头集装箱。作为构建过程的一部分,我需要访问在主机上本地运行的Web服务器。是否可以将主机Web服务器(可以配置为在端口上运行)暴露给jenkins容器? 编辑:我正在Linux机器上本地运行docker。 更新: 除了下面的@larsks答案之外,要从主机获取主机IP的IP地址,我还要执行以下操作: 问题答案: 在Linux上本地运行Docker时,您可以使用接口