공식 tomcat
이미지 로 작성된 Docker 이미지에 파일을 추가하려고합니다 . tomcat
bash를 실행하면 사용자로 로그인했기 때문에 해당 이미지에 루트 권한이없는 것 같습니다 .
docker run -it tomcat /bin/bash
tomcat@06359f7cc4db:/usr/local/tomcat$
Dockerfile
파일을 해당 컨테이너에 복사 하도록 지시 하면 파일에 권한이 644
있고 소유자는 root
입니다. 내가 아는 한 Dockerfile의 모든 명령이 루트로 실행되는 것이 합리적입니다. 그러나 해당 파일의 소유권을로 변경하려고 tomcat:tomcat
하면 Operation not permitted
오류가 발생합니다.
해당 이미지로 복사 된 파일의 권한을 변경할 수없는 이유는 무엇입니까?
재현 방법 :
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 .
의 출력 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
있습니까? 왜 그들은USER
지시문을 고려하지 않습니까?