Dockerfile:通过 RUN 对文件系统所做的更改不会持久

2024-05-12

我找不到特定于网络搜索的内容site:stackoverflow.com dockerfile RUN fs changes not persisted.

I made Dockerfile并想通过以下方式对图像进行一些更改RUN。首先,我想更改文件属性,但启动的容器中没有更改。我发现这篇文章讲述了docker错误chmod和解决方法:https://serverfault.com/questions/772227/chmod-not-working- Correctly-in-docker https://serverfault.com/questions/772227/chmod-not-working-correctly-in-docker。但是,现在我只是尝试通过创建一个文件RUN touch /path/file in Dockerfile并且已经在下一个命令(据我了解文档的 docker 的下一层)中,更改(该文件)消失了。据我看来很奇怪,否则怎么办apt install然后就可以工作了,因为它会对图像中的文件系统进行更改...为什么会出现该特定结果RUN不坚持?下面的文档告诉相反的(或者我误解了commit here):

https://docs.docker.com/engine/reference/builder/ https://docs.docker.com/engine/reference/builder/ :

RUN 指令将执行新层上的任何命令 当前图像并提交结果。由此产生的承诺 图像将用于 Dockerfile 中的下一步。

这是输出docker build --no-cache -t yandex:user5 yandex2/(参见步骤 6 和 7;dockeruser 已创建,btw):

Step 1/8 : FROM artifactory.dev.foo.org:5000/yandex-tank:jmeter
 ---> b8286a9220ca
Step 2/8 : LABEL maintainer="[email protected] /cdn-cgi/l/email-protection"
 ---> Running in 7cfde9a90bf2
Removing intermediate container 7cfde9a90bf2
 ---> b5acd9d55f9c
Step 3/8 : WORKDIR /var/loadteest
 ---> Running in 47e9adc401bb
Removing intermediate container 47e9adc401bb
 ---> 103f158e0be3
Step 4/8 : USER root
 ---> Running in 9923d71f7b08
Removing intermediate container 9923d71f7b08
 ---> bb3aa8672bc6
Step 5/8 : RUN groupadd -r dockeruser &&    useradd -r -g dockeruser -d /var/loadtest -s /sbin/nologin -c "Docker image user" dockeruser
 ---> Running in 48c89f33d750
Removing intermediate container 48c89f33d750
 ---> 5000afa7698d
Step 6/8 : RUN touch /var/loadtest/chmodtest.txt
 ---> Running in 00b2d1ccad75
Removing intermediate container 00b2d1ccad75
 ---> c35808f13344
Step 7/8 : RUN ls -al /var/loadtest
 ---> Running in cc08d129eeb3
total 8
drwxr-xr-x 2 root root 4096 Nov 20 12:19 .
drwxr-xr-x 1 root root 4096 Nov 29 06:15 ..
Removing intermediate container cc08d129eeb3
 ---> 842678ca5d49
Step 8/8 : ENTRYPOINT /bin/bash
 ---> Running in 20b92a97c8a8
Removing intermediate container 20b92a97c8a8
 ---> fefd0d665677
Successfully built fefd0d665677
Successfully tagged yandex:user5

问题是使用基础映像中的卷:

从 Dockerfile 中更改卷:如果有任何构建步骤 在声明卷后更改卷内的数据,那些 更改将被丢弃。

see This https://docs.docker.com/engine/reference/builder/#volume

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dockerfile:通过 RUN 对文件系统所做的更改不会持久 的相关文章

随机推荐