具有来自www-data的写入权限的本地docker卷

时间:2016-04-28 20:07:28

标签: docker permissions dockerfile

这是我的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应用程序如何才能获得在主机目录上写入的权限?

1 个答案:

答案 0 :(得分:1)

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