-v从docker容器中删除了所有数据

时间:2018-11-03 02:20:04

标签: docker

我制作了一个名为myImage的码头工人镜像,其中有一个文件夹:/data,我想让用户自己编辑它。我读到-v标志可以装载该卷,所以我按如下方式使用它:

我使用以下命令运行容器:

docker run -v /my_local_path:/data -it myImage /bin/bash

但是令人惊讶的是,docker清除了容器中/data中的所有文件。但这不是我想要的...实际上,我希望主机可以从/data中获取所有文件...:(

我该怎么做?

1 个答案:

答案 0 :(得分:1)

当您共享这样的卷时,主机上的卷将覆盖容器中的卷,因此将删除容器文件夹中的文件。

您需要做的是将文件放在容器中的文件夹A(容器中的文件夹)中。挂载文件夹B(容器中的另一个文件夹)。然后在装入该卷之后,将文件从文件夹A移到文件夹B。然后这些文件将对主机和容器内部可用。

您可以在Dockerfile中使用RUN或ENTRYPOINT脚本来实现此“移动文件”操作。

请参见Run a script in Dockerfile

对不起,我忘记了您是否需要RUN或ENTRYPOINT(或者两者都可以使用),但是其中之一肯定可以。

认为,您想要ENTRYPOINT,因为ENTRYPOINT脚本在创建容器后运行。因此它将在卷安装后运行。