Ich versuche, einem Docker-Image, das aus dem Offiziellen erstellt wurde, eine Datei hinzuzufügen tomcat
Bild. Dieses Bild scheint keine Root-Rechte zu haben, da ich als Benutzer angemeldet bin tomcat
wenn ich bash starte:
docker run -it tomcat /bin/bashtomcat@06359f7cc4db:/usr/local/tomcat$
Wenn ich eine Anweisung gebe Dockerfile
um eine Datei in diesen Container zu kopieren, verfügt die Datei über Berechtigungen 644
und der Besitzer ist root
. Soweit ich weiß, scheint das vernünftig zu sein, da alle Befehle in der Docker-Datei als root ausgeführt werden. Wenn ich jedoch versuche, den Besitz dieser Datei in zu ändern tomcat:tomcat
, Ich bekomme eine Operation not permitted
Fehlermeldung.
Warum kann ich die Berechtigungen einer in dieses Image kopierten Datei nicht ändern?
Wie es reproduziert werden kann:
mkdir docker-addfilepermissioncd docker-addfilepermissiontouch test.txtecho 'FROM tomcatCOPY test.txt /usr/local/tomcat/webapps/RUN chown tomcat:tomcat /usr/local/tomcat/webapps/test.txt' > Dockerfiledocker build .
Die Ausgabe von docker build .
:
Sending build context to Docker daemon 3.072 kBSending build context to Docker daemon Step 0 : FROM tomcat ---> 44859847ef64Step 1 : COPY test.txt /usr/local/tomcat/webapps/ ---> Using cache ---> a2ccb92480a4Step 2 : RUN chown tomcat:tomcat /usr/local/tomcat/webapps/test.txt ---> Running in 208e7ff0ec8fchown: changing ownership of '/usr/local/tomcat/webapps/test.txt': Operation not permitted2014/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