【问题标题】:Permissions in Docker volumeDocker 卷中的权限
【发布时间】:2020-08-07 05:56:10
【问题描述】:

我正在为 docker 卷的权限而苦苦挣扎,我因写入而被拒绝访问。

这是我的 docker 文件的一小部分

FROM ubuntu:18.04
RUN apt-get update && \
apt-get install -y \
apt-transport-https \
build-essential \
ca-certificates  \
curl \
vim && \............

RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - && apt-get install -y nodejs

# Add non-root user
ARG USER=user01
RUN useradd -Um -d /home/$USER -s /bin/bash $USER && \
apt install -y python3-pip && \
pip3 install qrcode[pil]

#Copy that startup.sh into the scripts folder
COPY /scripts/startup.sh /scripts/startup.sh

#Making the startup.sh executable
RUN chmod -v +x /scripts/startup.sh

#Copy node API files
COPY --chown=user1 /node_api/* /home/user1/

USER $USER
WORKDIR /home/$USER

# Expose needed ports
EXPOSE 3000

VOLUME /data_storage

ENTRYPOINT [ "/scripts/startup.sh" ]

也是我的startup.sh的一小部分

#!/bin/bash

/usr/share/lib/provision.py --enterprise-seed $ENTERPRISE_SEED > config.json

然后我的docker构建命令:

sudo docker build -t mycontainer .

还有 docker run 命令:

sudo docker run -v data_storage:/home/user01/.client -p 3008:3000 -itd mycontainer 

我遇到的问题是 Python 脚本将创建文件夹:/home/user01/.client,它会在其中复制一些文件。那总是工作得很好。但现在我希望将这些文件(即数据文件)放在一个卷中用于备份文件。当我使用我的卷进行映射时,我的权限被拒绝了,所以 python 脚本不能再写了。

所以在我的 dockerfile 的末尾,这个指令与 docker run 命令中的映射相结合,给了我被拒绝的权限:

VOLUME /data_storage

关于如何解决此问题的任何建议? “user01”需要更多权限吗? 谢谢

【问题讨论】:

  • 你在 Windows 上吗?
  • 在 linux VM ubuntu 中工作
  • 您的系统中是否创建了目录?
  • 如果您安装在本地卷中,它将使用与主机系统上相同的数字 UID 和 GID 来获得文件系统权限。问题可能是您的user01 用户没有使用对本地安装的卷具有写入权限的 UID / GID。尝试在您的 dockerfile 中使用显式 GID 创建一个组,然后授予本地目录对该 GID 的写入权限。
  • @Grzegorz Pudłowski:我在 dockerfile "VOLUME /data_storage" 中创建卷,然后在我的 docker 文件中进行映射。我没有在本地创建任何文件

标签: docker dockerfile docker-volume docker-container docker-image


【解决方案1】:

我能够通过从 dockerfile 中删除“volume”命令并在执行 docker run 时进行映射来解决我的问题:

sudo docker run -v data_storage:/home/user01/.client -p 3008:3000 -itd mycontainer

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 2019-05-08
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 2016-03-25
    相关资源
    最近更新 更多