【问题标题】:Local docker volume with write permission from www-data具有来自 www-data 的写入权限的本地 docker 卷
【发布时间】:2016-04-28 20:07:28
【问题描述】:

这是我的 Dockerfile 的一部分:

RUN mkdir /data
RUN chown www-data:www-data /data
RUN chmod 664 /data
VOLUME ["/data"]

我使用以下命令创建图像:

docker build -t webapp .

我是这样运行的:

docker run -d -p 80:80 -v /home/user/data:/data webapp

但在我的主机用户目录中,data 目录是这样创建的:

drwxr-xr-x  2 root root 4,0K avril 28 21:52 data

在图像中(docker exec -it CONTAINER_ID bash)我有:

drwxr-xr-x   2 root root 4096 Apr 28 19:52 data

因此,Dockerfile 中的命令会被忽略。
Web docker 应用程序如何简单地获得在主机目录上写入的权限?

【问题讨论】:

    标签: docker permissions dockerfile


    【解决方案1】:

    所以你正在构建一个图像,设置 chmods,这一切都很酷。 但是随后您使用 -v 选项运行容器,这意味着 /data 将被安装的卷替换。此时,构建映像中的所有文件和权限都将被忽略。您可以通过运行不带 -v 选项的容器来检查这一点。解决方案是创建入口点脚本(在 Dockerfile 中使用 ENTRYPOINT 或 CMD 命令),该脚本将首先修复权限,然后为您的图像运行原始命令。

    【讨论】:

      猜你喜欢
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-28
      • 2019-03-25
      • 1970-01-01
      相关资源
      最近更新 更多