Moby: docker以root身份在卷中创建文件,有没有办法让它成为当前用户?

创建于 2015-08-12  ·  3评论  ·  资料来源: moby/moby

我想在 docker 中使用 Django 并将本地目录添加为卷挂载到其中,但是当我使用 manage.py 创建一些文件时。 所有由“root”创建的文件,有没有办法让它们属于我当前的用户?

所有3条评论

你好!

请阅读有关创建问题的重要信息。

如果您要报告新问题,请确保我们没有任何已打开的重复问题。 您可以通过搜索此存储库的问题列表来确保这一点。 如果有重复,请关闭您的问题并改为对现有问题添加评论。

如果您怀疑您的问题是错误,请编辑您的问题描述以包含如下所示的错误报告信息。 如果您未能在 7 天内提供此信息,我们将无法调试您的问题并将其关闭。 但是,如果您稍后提供信息,我们将重新打开它。

这是一个自动的信息响应。

谢谢你。

有关报告问题的更多信息,请参阅https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting -other-issues


错误报告信息

使用以下命令从您的环境中提供关键信息:

docker version :
docker info
uname -a

提供其他环境详细信息(AWS、VirtualBox、物理等):

列出重现问题的步骤:
1.
2.
3.

描述您收到的结果:

描述您预期的结果:

提供您认为重要的其他信息:

----------结束报告 ---------

需要更多信息

$ docker version

Client API version: 1.19
Package Version (client): docker-1.7.1-7.gitd5a81b3.fc22.x86_64
Go version (client): go1.4.2
Git commit (client): d5a81b3/1.7.1
OS/Arch (client): linux/amd64
Server version: 1.7.1.fc22
Server API version: 1.19
Package Version (server): docker-1.7.1-7.gitd5a81b3.fc22.x86_64
Go version (server): go1.4.2
Git commit (server): d5a81b3/1.7.1
OS/Arch (server): linux/amd64

$ docker info

Containers: 8
Images: 100
Storage Driver: devicemapper
 Pool Name: docker-253:1-404319-pool
 Pool Blocksize: 65.54 kB
 Backing Filesystem: extfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 4.575 GB
 Data Space Total: 107.4 GB
 Data Space Available: 39.96 GB
 Metadata Space Used: 7.352 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.14 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.93 (2015-01-30)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.1.3-201.fc22.x86_64
Operating System: Fedora 22 (Twenty Two)
CPUs: 4
Total Memory: 11.44 GiB
Name: kyan.xxx.xxx.xxx.com
ID: V6E4:XJB2:BURJ:SRYK:D6VW:2BDW:CFNH:BT4J:G54A:NSK5:OQEP:C4H3


$ uname -a

Linux kyan.laptop.nay.redhat.com 4.1.3-201.fc22.x86_64 #1 SMP Wed Jul 29 19:50:22 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

提供额外的环境细节(物理):

列出重现问题的步骤:

  1. 按照https://docs.docker.com/compose/django/创建配置,(在“构建项目”之前)
  2. 在 docker-compose.yml 中添加特权或执行sudo setenforce 0以使容器云将文件写入卷。
  3. 运行docker-compose run web django-admin.py startproject composeexample .
  4. Django 生成的文件是由“root”用户创建的

我的问题是:有没有办法让容器生成的文件使用主机用户和组?

drwxr-xr-x. 2 root root 4.0K Aug 12 09:21 composeexample
-rwxr-xr-x. 1 kyan kyan  360 Aug 12 09:21 docker-compose.yml
-rwxr-xr-x. 1 kyan kyan  146 Aug 11 18:59 Dockerfile
-rwxr-xr-x. 1 root root  255 Aug 12 08:52 manage.py
-rwxr-xr-x. 1 kyan kyan   99 Aug 11 18:46 requirements.txt

我找到了解决方案,只需添加 --user 1000:1000
或添加 docker-compose.yml

user: "1000:1000"
此页面是否有帮助?
0 / 5 - 0 等级