file-permissions – 如何将文件添加到没有root权限的docker容器中?
发布时间:2020-05-23 18:22:12 所属栏目:Linux 来源:互联网
导读:我正在尝试将文件添加到从官方tomcat映像构建的Docker镜像中.该图像似乎没有root权限,因为如果我运行bash,我以用户tomcat身份登录: docker run -it tomcat /bin/bashtomcat@06359f7cc4db:/usr/local/tomcat$ 如果我指示Dockerfile将文件复制到该容器,则该文
我正在尝试将文件添加到从官方tomcat映像构建的Docker镜像中.该图像似乎没有root权限,因为如果我运行bash,我以用户tomcat身份登录: docker run -it tomcat /bin/bash tomcat@06359f7cc4db:/usr/local/tomcat$ 如果我指示Dockerfile将文件复制到该容器,则该文件具有权限644,并且所有者为root.据我所知,这似乎是合理的,因为Dockerfile中的所有命令都以root身份运行.但是,如果我尝试将该文件的所有权更改为tomcat:tomcat,则会出现Operation not allowed错误. 为什么我不能更改复制到该图像的文件的权限? 如何复制: 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 解决方法可能有一种方法可以查看和更改tomcat的Dockerfile,但几分钟后我就无法弄清楚了.我不优雅的解决方案是在chown之前添加这一行:USER root 如果您想在(建议)之后取消权限,可以添加以下行: 用户tomcat 或者,使用没有安装软件的映像,这样您就可以以root身份开始Dockerfile并安装tomcat等等.实际上他们根据我的经验改变了他们的形象.允许预期的最终用户在他们认为合适时设置USER指令是有意义的. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在单个Linux服务器上运行不同文件系统的性能影响
- linux – 任何“at”作业执行时的日志?
- 在Linux上使用纯C项目用C编写的库?
- 为什么我不能ping linux上的前导或尾随下划线的地址
- linux – start-stop-daemon可以使用环境变量吗?
- c – 使用fork时如何映射内存?
- linux-kernel – 在copy_from_user()声明的头文件中?
- linux – 为什么Jenkins用户没有权限访问Docker unix套接字
- [转]nf_conntrack: table full, dropping packet 连接跟踪表
- linux – 检测shell脚本的输出流类型