Py学习  »  docker

Dockerfile:根目录上的chmod不工作

PAX • 6 年前 • 557 次点击  

我在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

如何确定权限?

我有一些特定的原因,为什么我要临时在根文件夹上设置这些权限:不幸的是,我正在容器中运行一个特定的应用程序,它的另一个用户是 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
...

执行容器时:

drwxrwxrwx    2 root     root          4096 Mar 19 14:42 mytest
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53907
文章 [ 1 ]  |  最新文章 6 年前
bot
Reply   •   1 楼
bot    6 年前

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

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