【问题标题】:Give write permission to docker container给 docker 容器写权限
【发布时间】:2020-01-17 08:33:39
【问题描述】:

我正在运行灯容器。因此,从我在 apache 服务器上运行的应用程序中,我需要上传一个文件。我不断收到错误消息:上传目标文件夹似乎不可写。 所以,我需要授予位于 /Documents/Kitematic/lamp/app/appv2/uploads 中的文件夹被写入的权限......我该怎么做? 我已经尝试过“mkdir 077 目录”,但无法正常工作。 下面你可以看到我的所有权限:

 # ls -al
 total 96
 drwxr-xr-x   1 root     root  4096 Sep 16 10:45 .
 drwxr-xr-x   1 root     root  4096 Sep 16 10:45 ..
 drwxr-xr-x   2 root     root  4096 Sep 16 10:45 0777
 drwxr-xr-x   9 www-data staff  306 Sep 16 09:06 app
 drwxr-xr-x   1 root     root  4096 Aug 16  2018 bd_build
 drwxr-xr-x   1 root     root  4096 Jun 12 19:16 bin
 drwxr-xr-x   2 root     root  4096 Apr 24  2018 boot
 -rwxr-xr-x   1 root     root  2049 Jun 12 19:13 create_mysql_users.sh
 drwxr-xr-x   5 root     root   360 Sep 16 13:16 dev
 -rwxr-xr-x   1 root     root     0 Sep 16 09:11 .dockerenv
 drwxr-xr-x   1 root     root  4096 Sep 16 09:11 etc
 drwxr-xr-x   2 root     root  4096 Apr 24  2018 home
 drwxr-xr-x   1 root     root  4096 Jul 24  2018 lib
 drwxr-xr-x   2 root     root  4096 Jul 24  2018 lib64
 drwxr-xr-x   2 root     root  4096 Jul 24  2018 media
 drwxr-xr-x   2 root     root  4096 Jul 24  2018 mnt
 drwxr-xr-x   2 root     root  4096 Jul 24  2018 opt
 dr-xr-xr-x 194 root     root     0 Sep 16 13:16 proc
 drwx------   1 root     root  4096 Jun 12 19:18 root
 drwxr-xr-x   1 root     root  4096 Sep 16 13:16 run
 -rwxr-xr-x   1 root     root  2160 Jun 12 19:13 run.sh
 drwxr-xr-x   1 root     root  4096 Jun 12 19:16 sbin
 drwxr-xr-x   2 root     root  4096 Jul 24  2018 srv
 -rwxr-xr-x   1 root     root    67 Jun 12 19:13 start-apache2.sh
 -rwxr-xr-x   1 root     root    29 Jun 12 19:13 start-mysqld.sh
 dr-xr-xr-x  13 root     root     0 Sep 16 13:16 sys
 drwxrwxrwt   1 root     root  4096 Sep 16 13:18 tmp
 drwxr-xr-x   1 root     root  4096 Jul 24  2018 usr
 drwxr-xr-x   1 root     root  4096 Jun 12 19:17 var

【问题讨论】:

    标签: docker permissions lamp kitematic


    【解决方案1】:

    在容器内使用 ls -al 查看当前权限。使用 id 查看当前的 uid。

    使用 docker exec 您可以传递一个标志来更改当前用户。而要更改权限,您可以使用 chmod 来更改自己的权限,chown 来更改用户所有权。

    例如

    docker exec -u root container_1 chmod 777 .
    

    此命令将允许任何用户通过以 root 身份运行来读取或写入容器内的当前文件夹。

    【讨论】:

    • $ docker exec lamp id uid=0(root) gid=0(root) groups=0(root)。显然每个人都是root...
    • 运行命令的 uid(默认为 root,但可以在映像中使用 Dockerfile、docker run cli 或 docker-compose 中的 USER 命令覆盖。 yml 文件)。由于您使用的是相对路径,因此您的命令运行的位置。这将默认为 /,但再次可以通过以各种方式更改工作目录来覆盖,最常见的是使用 Dockerfile 中的 WORKDIR。该位置的目录和文件权限。
    • Docker 以绑定 linux 文件系统权限的 linux 用户身份运行命令。
    • 您能告诉我如何将我的路径添加到具有权限的列表中吗?老实说,有人告诉我要按照 pdf 上的教程来安装这个容器,这是我第一次使用 docker...
    • 看看已经回答过的类似问题stackoverflow.com/questions/45972608/…
    猜你喜欢
    • 2019-05-10
    • 1970-01-01
    • 2019-09-11
    • 2016-12-26
    • 2018-07-17
    • 2018-05-25
    • 1970-01-01
    • 2019-10-04
    • 2019-01-06
    相关资源
    最近更新 更多