无法创建目录。 docker 容器内的权限被拒绝
Cannot create directory. Permission denied inside docker container
在将非根用户添加到 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
创建为非根用户(因为 USER
指令将用于 运行 的任何命令更改为 UID)。这行不通,因为 /
归 root
所有,并且模式为 dr-xr-xr-x
.
试试看:
RUN mkdir -p /newfolder
RUN chown newuser /newfolder
USER newuser
WORKDIR /newfolder
这将创建目录 root
,然后 chown
它。
实际上我在创建 [root] 用户并完成 xyz 后遇到了这个问题。当我去重建我的 docker 时(即使使用强制重建),它给我各种权限被拒绝的错误。安全对我来说不是问题,所以只需添加
FROM ubuntu:latest
USER root
ENV TZ=Europe/Kiev
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get install...
然后做我的新用户代码
RUN useradd...
我知道这不是完美的答案,但希望对您有所帮助!
这是我创建非用户权限文件夹的过程
FROM solr:8
USER root
RUN mkdir /searchVolume
RUN chown solr:solr /searchVolume
USER solr
最后一行将登录名返回到 solr(或您拥有的任何用户)。
在将非根用户添加到 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
创建为非根用户(因为 USER
指令将用于 运行 的任何命令更改为 UID)。这行不通,因为 /
归 root
所有,并且模式为 dr-xr-xr-x
.
试试看:
RUN mkdir -p /newfolder
RUN chown newuser /newfolder
USER newuser
WORKDIR /newfolder
这将创建目录 root
,然后 chown
它。
实际上我在创建 [root] 用户并完成 xyz 后遇到了这个问题。当我去重建我的 docker 时(即使使用强制重建),它给我各种权限被拒绝的错误。安全对我来说不是问题,所以只需添加
FROM ubuntu:latest
USER root
ENV TZ=Europe/Kiev
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get install...
然后做我的新用户代码
RUN useradd...
我知道这不是完美的答案,但希望对您有所帮助!
这是我创建非用户权限文件夹的过程
FROM solr:8
USER root
RUN mkdir /searchVolume
RUN chown solr:solr /searchVolume
USER solr
最后一行将登录名返回到 solr(或您拥有的任何用户)。