Ich versuche, einem Docker-Image, das aus dem offiziellen tomcatImage erstellt wurde , eine Datei hinzuzufügen . Dieses Image scheint keine Root-Rechte zu haben, da ich als Benutzer angemeldet bin, tomcatwenn ich bash ausführe:
docker run -it tomcat /bin/bash
tomcat@06359f7cc4db:/usr/local/tomcat$
Wenn ich a Dockerfileanweise, eine Datei in diesen Container zu kopieren, hat die Datei Berechtigungen 644und der Besitzer ist root. Soweit ich weiß, scheint dies sinnvoll zu sein, da alle Befehle in der Docker-Datei als root ausgeführt werden. Wenn ich jedoch versuche, den Besitz dieser Datei zu ändern tomcat:tomcat, wird eine Operation not permittedFehlermeldung angezeigt.
Warum kann ich die Berechtigungen einer auf dieses Image kopierten Datei nicht ändern?
Wie es reproduziert werden kann:
mkdir docker-addfilepermission
cd docker-addfilepermission
touch test.txt
echo 'FROM tomcat
COPY test.txt /usr/local/tomcat/webapps/
RUN chown tomcat:tomcat /usr/local/tomcat/webapps/test.txt' > Dockerfile
docker build .
Die Ausgabe von docker build .:
Sending build context to Docker daemon 3.072 kB
Sending build context to Docker daemon
Step 0 : FROM tomcat
---> 44859847ef64
Step 1 : COPY test.txt /usr/local/tomcat/webapps/
---> Using cache
---> a2ccb92480a4
Step 2 : RUN chown tomcat:tomcat /usr/local/tomcat/webapps/test.txt
---> Running in 208e7ff0ec8f
chown: changing ownership of '/usr/local/tomcat/webapps/test.txt': Operation not permitted
2014/11/01 00:30:33 The command [/bin/sh -c chown tomcat:tomcat /usr/local/tomcat/webapps/test.txt] returned a non-zero code: 1
root? WarumUSERberücksichtigen sie die Richtlinie nicht?