Dockerfile:根目录上的chmod不起作用

时间:2019-03-19 13:59:40

标签: docker dockerfile

我在Ubuntu上基于以下Dockerfile构建了一个Docker映像:

FROM openjdk:8-jre-alpine

USER root
RUN echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX && ls -ald /
RUN chmod 777 /
RUN echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX && ls -ald /

ENTRYPOINT [ "sh", "-c", "echo test" ]

我期望根路径获得设置的权限,但随后构建docker映像输出(考虑ls -ald /的输出):

docker build  . -f Dockerfile 

Sending build context to Docker daemon  2.048kB
Step 1/6 : FROM openjdk:8-jre-alpine
 ---> b76bbdb2809f
Step 2/6 : USER root
 ---> Using cache
 ---> 18045a1e2d82
Step 3/6 : RUN echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX && ls -ald /
 ---> Running in 2309a8753729
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
drwxr-xr-x    1 root     root          4096 Mar 19 13:50 /
Removing intermediate container 2309a8753729
 ---> 809221ec8f71
Step 4/6 : RUN chmod 777 /
 ---> Running in 81df09ec266c
Removing intermediate container 81df09ec266c
 ---> 9ea5e2282356
Step 5/6 : RUN echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX && ls -ald /
 ---> Running in ef91613577da
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
drwxr-xr-x    1 root     root          4096 Mar 19 13:50 /
Removing intermediate container ef91613577da
 ---> cd7914160661
Step 6/6 : ENTRYPOINT [ "sh", "-c", "echo test" ]
 ---> Running in 3d724aca37fe
Removing intermediate container 3d724aca37fe
 ---> 143e46ec55a8
Successfully built 143e46ec55a8

如何确定权限?

更新:出于某些原因,我临时被迫在根文件夹上设置这些权限:不幸的是,我在容器中与{{1}以外的其他用户一起运行特定的应用程序},此应用程序将某些内容直接写入root。目前,这是不可配置的。

如果我在根目录下的另一个文件夹上执行此操作,则它将按预期工作:

/

在执行容器时:

...
Step 6/8 : RUN mkdir -p /mytest && chmod 777 /mytest
 ---> Running in 7aa3c7b288fd
Removing intermediate container 7aa3c7b288fd
 ---> 1717229e5ac0
Step 7/8 : RUN echo ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ && ls -ald /mytest
 ---> Running in 2238987e1dd6
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
drwxrwxrwx    2 root     root          4096 Mar 19 14:42 /mytest
...

1 个答案:

答案 0 :(得分:0)

要检查容器中根文件夹bash的权限,请执行以下操作

  • docker exec -it container_id bash
  • cd /
  • ls -ald