"/data/test" VOLUME "/data" 我-6ren">
gpt4 book ai didi

docker - 修改从父镜像继承的体积数据

转载 作者:行者123 更新时间:2023-12-01 03:20:00 26 4
gpt4 key购买 nike

说有一张图片 A由以下 Dockerfile 描述:

FROM bash
RUN mkdir "/data" && echo "FOO" > "/data/test"
VOLUME "/data"

我想指定一个图像 B继承自 A并修改 /data/test .我不想挂载卷,我希望它有一些我在 B 中指定的默认数据:
FROM A
RUN echo "BAR" > "/data/test"

问题是测试文件将保留它在 VOLUME 时的内容。 A 中的说明文件。 B图像测试文件将包含 FOO而不是 BAR正如我所料。

以下 Dockerfile 演示了该行为:
FROM bash
# overwriting volume file
RUN mkdir "/volume-data" && echo "FOO" > "/volume-data/test"
VOLUME "/volume-data"
RUN echo "BAR" > "/volume-data/test"
RUN cat "/volume-data/test" # prints "FOO"
# overwriting non-volume file
RUN mkdir "/regular-data" && echo "FOO" > "/regular-data/test"
RUN echo "BAR" > "/regular-data/test"
RUN cat "/regular-data/test" # prints "BAR"

构建 Dockerfile 将打印 FOOBAR .

是否可以修改文件 /data/testB Dockerfile?

最佳答案

好像是intended behavior .

Changing the volume from within the Dockerfile: If any build steps change the data within the volume after it has been declared, those changes will be discarded.

关于docker - 修改从父镜像继承的体积数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46227454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com