【问题标题】:Having Docker access External files让 Docker 访问外部文件
【发布时间】:2015-06-04 19:18:31
【问题描述】:

我有兴趣让 Docker 可以访问外部文件,但我不希望将它们作为卷包含在内。我需要访问的文件会随着时间的推移而改变,这意味着我需要反复重新挂载,除非我可以挂载一个单纯的目录,并且该目录中的任何内容也会被挂载。

我只需要允许推入容器的软件程序“在”我的本地系统上运行,该软件程序可以访问我本地系统上的文件。

建议?除了添加需要作为卷处理的文件之外,还有其他方法吗?

【问题讨论】:

    标签: docker volume


    【解决方案1】:

    我用下面的命令解决了同样的问题

    docker run  --mount type=bind,source="$(pwd)"/data,target=/home/data -it <name_of_container>
    

    注意“-it conainter_name”应该是最后一个标志。

    【讨论】:

      【解决方案2】:

      听起来您正在寻找在容器中安装主机目录。您无需重新启动容器即可获取对已安装目录的更改。 Link to relevant docs.

      【讨论】:

        【解决方案3】:

        我想知道ADD 命令是否可以帮助您实现目标。例如,给定 Dockerfile 行:

        ADD /Users/userX/myappfiles /appfiles
        

        和命令行:

        docker run myapp --input /myappfiles
        

        myapp 将能够访问本地文件系统上的/Users/userX/myappfiles 以获取其输入。

        【讨论】:

        • ADD 命令是否复制文件或文件夹。根据 Op 的需求,这可能不是他们想要的。如果他们想共享数据,并查看对其进行的任何更新,那将无法正常工作,因为在 Docker 容器内所做的任何更改都无法在容器外访问。而且由于它复制文件,如果这些文件很大,每次容器启动时复制它们可能会消耗大量 CPU 和磁盘空间。
        • 是的,ADD 复制文件/文件夹,您的担忧是有效的。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-09
        • 2023-03-27
        • 2018-12-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多