gpt4 book ai didi

docker - 无法更改 Docker 中 '/' 目录的权限

转载 作者:行者123 更新时间:2023-12-01 15:33:26 25 4
gpt4 key购买 nike

我正在构建基于 Oracle Linux 6.7 的 Docker 镜像。
好像创建的/目录的默认权限不正确:750。我想把它改成755,但是Dockerfile中的chmod命令似乎没有效果。

如何设置 / 目录的权限?我试过添加USER root在 Dockerfile 中,但这也不起作用。

Dockerfile

FROM    oraclelinux:6.7

RUN ls -ld /
RUN chmod 755 /
RUN ls -ld /

docker build -t oraclelinux:fubar . 的输出
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM oraclelinux:6.7
---> cfc75fa9f295
Step 1 : RUN ls -ld /
---> Running in ed83a5c1f462
drwxr-x--- 21 root root 4096 Aug 27 14:41 /
---> 2a1f11648594
Removing intermediate container ed83a5c1f462
Step 2 : RUN chmod 755 /
---> Running in 6f045908c424
---> 1e44793993cb
Removing intermediate container 6f045908c424
Step 3 : RUN ls -ld /
---> Running in 0b1b10022e79
drwxr-x--- 21 root root 4096 Aug 27 14:41 /
---> f97f3e6711c5
Removing intermediate container 0b1b10022e79
Successfully built f97f3e6711c5

如果我运行容器并手动更改权限,它会起作用:

docker run -ti oraclelinux:fubar
[root@1e73ebab4b8c /]# ls -ld /
drwxr-x--- 21 root root 4096 Aug 27 14:56 /
[root@1e73ebab4b8c /]# chmod 755 /
[root@1e73ebab4b8c /]# ls -ld /
drwxr-xr-x 21 root root 4096 Aug 27 14:56 /

最佳答案

我在网上搜索后发现,主要问题是“/”目录的权限不正确,并且无法通过简单地更改 Dockerfile 中的权限来修复。

这个 post 表明它可能与 umask 相关并且错误修复进入了 1.8.0 版本。所以,第一步是升级Docker引擎。它没有解决问题。

另一个 post 建议,当一个图像在一个文件系统上构建然后在另一个文件系统上使用时,'/'目录的权限设置不正确。在我构建镜像的系统上,使用了“devicemapper”。可能是来自 Dockerhub 的镜像构建在不同的文件系统上。

因此,我切换到 Oracle 提供的不同 Oracle Linux 镜像:
FROM oracle/oraclelinux:6.6
它解决了这个问题。

关于docker - 无法更改 Docker 中 '/' 目录的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32253020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com