Docker卷中的权限

问题描述 投票:0回答:1

我正在为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 builds命令。

sudo docker build -t mycontainer .

和docker运行命令。

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

我的问题是Python脚本会创建一个文件夹 homeuser01.client 然后把一些文件复制到里面去。这一直都很好。但现在我想把这些文件,也就是数据文件,放在一个备份卷里。当我在映射我的卷时,我得到了权限拒绝,所以python脚本不能再写了。

所以在我的docker文件的最后,这个指令和docker运行命令中的映射相结合,给了我权限拒绝。

VOLUME /data_storage

有什么建议可以解决这个问题吗?"user01 "需要更多的权限吗? 谢谢

docker dockerfile docker-volume docker-container docker-image
1个回答
0
投票

我可以通过删除docker文件中的 "volume "命令来解决我的问题,只需在执行docker运行时进行映射。

sudo docker run -v data_storage:homeuser01.client -p 3008:3000 -itd mycontainer...

© www.soinside.com 2019 - 2024. All rights reserved.