【问题标题】:Docker Volume - Retain host files when deleted from containerDocker Volume - 从容器中删除时保留主机文件
【发布时间】:2018-11-24 06:31:56
【问题描述】:

我已使用 docker run --privileged -v /dev/bus/usb:/dev/bus/usb -d ubuntu 将我的 USB 设备安装到 docker 容器中

在容器内,我想从 /dev/bus/usb/ 中删除几个文件

这也会导致从主机中删除文件,这不是我想要的

我想从容器中删除文件,但继续将它们保存在主机中

有什么方法可以实现吗?

【问题讨论】:

    标签: docker containers volumes


    【解决方案1】:

    这是因为您使用的是共享卷,因此当您删除文件时,此操作对您的容器和主机都有效。

    也许您可以编写一个小 Dockerfile 来使用您的 USB 文件的副本创建一个映像,而不是将卷共享到容器中。

    FROM ubuntu
    
    COPY /dev/bus/usb /path/for/your/copy
    

    之后你就可以编译你的镜像了:

    docker build -t imagename .
    

    最后启动它:

    docker run -d imagename
    

    【讨论】:

    • 我希望任何连接到我的系统的新 USB 设备都能被正在运行的容器检测到。 COPY 不会让我做到这一点。
    • 只有共享卷才有可能,当容器修改数据时,它也会将数据修改到主机中。在我看来,真正的问题是:docker 是否可以解决您的问题?似乎您将 docker 用作虚拟机,但 docker 用于自动部署和沙箱具有其依赖项的进程,而不是执行像 virtualbox 这样的虚拟机。
    猜你喜欢
    • 2023-02-10
    • 2020-04-18
    • 2014-03-29
    • 2021-04-04
    • 1970-01-01
    • 2015-07-08
    • 2014-08-24
    相关资源
    最近更新 更多