当前位置: 首页 > 面试题库 >

无法创建目录。权限在Docker容器内被拒绝

农英杰
2023-03-14
问题内容

在将非root用户添加到sudoers组的映像构建过程中,无法创建文件夹。这是我的Dockerfile:

FROM ubuntu:16.04

RUN apt-get update && \
    apt-get -y install sudo

RUN adduser --disabled-password --gecos '' newuser \
    && adduser newuser sudo \
    && echo '%sudo ALL=(ALL:ALL) ALL' >> /etc/sudoers

USER newuser

RUN mkdir -p /newfolder
WORKDIR /newfolder

我得到错误: mkdir: cannot create directory '/newfolder': Permission denied


问题答案:

Docker容器内的文件系统就像Docker容器外的文件系统一样工作:如果要创建文件或目录,则需要适当的权限。在这种情况下,您尝试以/newfolder非root用户身份创建(因为该USER指令更改了用于运行其后所有命令的UID)。那/是行不通的,因为它拥有root并具有mode
dr-xr-xr-x

请尝试:

RUN mkdir -p /newfolder
RUN chown newuser /newfolder
USER newuser
WORKDIR /newfolder

这将创建目录root,然后创建chown



 类似资料:
  • 本文向大家介绍Docker创建容器时目录权限踩坑,包括了Docker创建容器时目录权限踩坑的使用技巧和注意事项,需要的朋友参考一下 昨天写项目时需要用到Mysql的衍生版本percona, 就想用Doker来安装.结果踩了一晚上坑, 今早终于解决. 现记录在此. 这个坑原因是我对linux的目录权限问题不敏感导致的. 我的系统是ubuntu16.04, 运行 docker pull percona

  • 我正在使用Docker Compose运行多个容器,包括一个带有Postgres映像的容器。我正在尝试向该容器添加一个卷,以跨容器构建持久化我的数据。但是,当它尝试在容器中为该卷创建目录时,我收到了一个错误。 我运行: 然后 docker compose up 我收到以下错误: 错误:对于cxbenchmark\u db\u 1,无法启动服务db:oci运行时错误:container\u linu

  • 这是我面临这个问题的一天。我不知道这是因为托管服务器还是我在joomla中的配置。 我正在尝试使用Akeba备份将我的joomla网站上传到ftp。首先,我上传了kickstart。php和Akeba文件的网站,它是成功的。 现在,我做了安装使用akeeba和最后一部分,它显示了一个模式,显示一个按钮"查看您的网站前端"。而不是去网站前端它下载一个index.php文件...我输入http://m

  • 问题内容: 我正在使用Amazon EC2托管通过git部署到服务器的网站。之前,我在同一类型的EC2 Ubuntu Linux Server实例上使用了本教程,并且运行良好。但是,当我尝试推送到服务器时,收到以下错误跟踪: 教程:http://toroid.org/ams/git- website-howto 跟踪: 目前,我的存储库中只有一个文件,即。 错误跟踪显示拒绝创建文件的权限。请您告诉

  • 问题内容: 问题 :无法停止泊坞窗容器,每当我尝试停止容器时,都会收到以下错误消息, 操作系统版本/内部版本: Ubuntu 16.04 | Docker版本17.09.0-ce,构建afdb6d4 | Docker Compose版本1.17.1,内部版本6d101fb 重现步骤: 使用Dockerfile和docker-compose.yml创建了Rails项目。docker-compose.

  • 问题内容: 概要 我试图在Docker中挂载主机目录,但是即使访问权限看起来不错,也无法从容器中访问主机目录。 细节 我在做 接着 它给了我: 以及更多类似的内容(我认为这是相关的部分)。 如果我做 结果是 主机是Fedora 20,带有Docker 1.0.0和go1.2.2。 怎么了? 问题答案: 这是SELinux问题。 您可以暂时签发 在主机上访问或通过运行添加SELinux规则 特别: