我正在尝试将文件添加到从官方tomcat镜像构建的 Docker镜像中。该图像似乎没有 root 权限,因为tomcat如果我运行 bash ,我以用户身份登录:
docker run -it tomcat /bin/bash
tomcat@06359f7cc4db:/usr/local/tomcat$
Run Code Online (Sandbox Code Playgroud)
如果我指示 aDockerfile将文件复制到该容器,则该文件具有权限644并且所有者为root. 据我了解,这似乎是合理的,因为 Dockerfile 中的所有命令都以 root 身份运行。但是,如果我尝试将该文件的所有权更改为 ,则会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 .
Run Code Online (Sandbox Code Playgroud)
的输出docker build .:
Sending build context to Docker daemon 3.072 kB
Sending build context to Docker daemon
Step 0 …Run Code Online (Sandbox Code Playgroud)