我有一个Dockerfile扩展FROM
一个声明VOLUME
的图像。有没有办法以这种方式覆盖VOLUME
指令,它“删除”了VOLUME
?
答案 0 :(得分:21)
没有
唯一的方法是,如果您克隆用作基础图像的Dockerfile
(FROM
中的图像)并手动删除VOLUME
指令。然后构建它并在FROM
作为基础使用。
答案 1 :(得分:2)
在某些情况下,您无法修改原始Dockerfile-在我的情况下,该图像来自生产环境。唯一的机会是修改元数据(使用docker save / load操作)。我经常需要这样做,为此我创建了一个小脚本,看看docker-copyedit是否可以帮助您。
答案 2 :(得分:0)
您可能会覆盖文件。 使用多阶段构建和COPY(docker 19.03)。 一级 在VOLUME文件夹之外创建文件。或者在添加/修改文件的同一运行步骤中,将其复制到该文件夹之外。 下一阶段将上一阶段的COPY文件复制到VOLUME文件夹中。