Docker卷中的权限

我正在为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文件中的 “volume “命令来解决我的问题,只需在执行docker运行时进行映射。

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

给TA打赏
共{{data.count}}人
人已打赏
未分类

使用Instant.parse解析2018-05-01T00:00:00日期时出错。

2022-9-9 4:35:16

未分类

需要试探性的接球

2022-9-9 4:35:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索