I have a docker container with a -v /home/dan:/home/dan:rw. When the container writes files to /home/dan, the files are owned by root in the host filesystem. Is there a way to make it so that files written from the container to the mounted volume are owned by some arbitrary user on the host filesystem?
相关问题
- Docker task in Azure devops won't accept "$(pw
- Unable to run mariadb when mount volume
- Unspecified error (0x80004005) while running a Doc
- What would prevent code running in a Docker contai
- How to reload apache in php-apache docker containe
A follow up to mandark answer - I would say it's also good to include the user group otherwise you will end up with stuff belonging to
user: USER
andgroup: root
. To achiveuser:user
just pass in group id as well, for example:EDIT: this has changed since my original answer which said it couldn't be done. As per answer of Mandark:
As François Zaninotto has pointed out, the user id can be used.
This can be done by using the -u switch for the docker run command.
For example:
It's possible. It's hard to automate, but it's possible. Here is the process:
in the docker container, run a shell script to:
Now, each file generated inside the container will be using the right user id and group id, and the host will attach them to your user.
I've written a tool to automate that using make, it's called make-docker-command. Hope this helps.