如何在 docker 中以非 root 用户身份写入卷容器?

Posted

技术标签:

【中文标题】如何在 docker 中以非 root 用户身份写入卷容器?【英文标题】:How do I write to a volume container as non-root in docker? 【发布时间】:2015-11-12 21:09:18 【问题描述】:

如何挂载可由非 root 容器用户写入的卷?我可以接受非 root 用户拥有的卷或将权限设置为 777。

Dockerfile:

FROM alpine
RUN adduser -D myuser
USER myuser

构建映像:

docker build -t example .

运行镜像,查看 /app 用户不可写

% docker run -i -t -v myapp:/app example /bin/sh
/ $ whoami
myuser
/ $ ls -lha / | grep app
drwxr-xr-x    2 root     root        4.0K Nov 12 21:01 app
/ $ 

我们可以看到应用程序是全局可读的,但只能由 root 写入。

【问题讨论】:

相关:***.com/questions/23544282/… 【参考方案1】:

目前尚不支持,在issue 2259 中进行了研究。 这会影响其他图像,例如 docker-java。

基本上要chown and copy (with the right user) your data in the volume,不太方便。

【讨论】:

在这种情况下,卷是一个容器,所以没有解决方法。 :( 我将在外部驱动它,以 root 身份执行基于卷的操作,并以 -u 的单独用户身份执行其他操作。感谢您指出这个错误。

以上是关于如何在 docker 中以非 root 用户身份写入卷容器?的主要内容,如果未能解决你的问题,请参考以下文章

Firefox headless 不能在 Docker 中以非 root 用户身份工作

在 Docker 中以非 root 用户身份运行应用程序

如何在官方 docker php 映像上以非 root 用户身份运行 composer

以非 root 用户身份运行 Nginx

如何以非 root 用户身份使用 CPAN?

如何在 Debian 上以非 root 用户身份运行 Spring Boot 应用程序?