将文件夹从Docker容器共享到主机

6
有没有一种方法可以从Docker容器共享文件夹到主机?例如,我在Docker容器中有Tomcat,我想让其能在外部可见。如果我执行以下操作:
volumes: - /opt/tomcat:/opt/tomcat
我会在容器中收到一个错误信息:"No such file or directory /opt/tomcat/bin/catalina.sh"。

你是否使用了-v HOST_FOLDER:CONTAINER_FOLDER这个命令?如果是,它应该可以工作……也许这是一个符号链接到你挂载目录之外的东西? - Salem
1
它可以工作,但是主机会重写容器内的目录内容。 - user3331089
1个回答

3
我认为Docker不允许你这样做。该命令将在容器中挂载您的主机文件夹,因此容器中的文件将不再可见。

有两个选项:
  1. 您可以使用此技巧(GitHub问题)访问容器文件:sudo ls /proc/$(docker inspect --format {{.State.Pid}} YOUR_CONTAINER_NAME)/root。要访问它们,您需要root权限,或者您可以使用bindfs将root用户与您的用户名匹配(请参见相同的线程)。

  2. 创建新的卷,将您需要访问的文件复制到其中,并在正确的位置内部挂载容器。


1
@Salem,你能详细说明一下“2”吗? - Gezim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接