首页 > 解决方案 > Docker 卷挂载提供父目录的根所有权

问题描述

我正在使用 docker 并使用 -v ~/.aws:/home/$(shell id -nu)/.aws. 问题是,由于 /home/(user) 在创建 docker 之前不存在,因此 /home/(user) 最终归 root 所有。这会导致 pip、sam-cli 等出现问题,因为它们都试图在用户主目录中存储一些信息。

如何在不完全放弃使用特定用户的情况下避免这种情况?我尝试使用 chown 更改所有权,但我总是得到“不允许操作”。

很容易复制

developer@desktopimage:~/AWS$ docker run --rm -it -v ~/.aws:/home/developer/.aws -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -u 1001:1001 alpine:latest ls -al /home/developer
total 12
drwxr-xr-x    3 root     root          4096 Feb 25 14:09 .
drwxr-xr-x    1 root     root          4096 Feb 25 14:09 ..
drwxr-xr-x    5 develope develope      4096 Feb  3 20:49 .aws
developer@desktopimage:~/AWS$ docker run --rm -it -v ~/.aws:/home/developer/.aws -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -u 1001:1001 alpine:latest ls -al /home
total 12
drwxr-xr-x    1 root     root          4096 Feb 25 14:09 .
drwxr-xr-x    1 root     root          4096 Feb 25 14:09 ..
drwxr-xr-x    3 root     root          4096 Feb 25 14:09 developer

标签: docker

解决方案


推荐阅读