I'm trying to use Docker in a Windows environment.
Running the docker command by running WSL2 at the command prompt.
docker run-it-u$(id-u):$(id-g)\
- vC:\Users\Username\Desktop\mounted_folder: /created_in_run<image_id>bash
I would like to create a created_in_run folder in the container with this command, and create a test file in the created_in_run folder by doing touch test
for non-root users in the container.
However, in a Windows environment, id-u is 1000 and id-g is 1000. Even if ls-la is used in the container to check the file owner, the created_in_run folder user will appear as root.
Therefore, even if you do touch test
in the created_in_run folder in the container,
touch:cannot touch 'test':permission denied
It doesn't work because it says
The results of the ls-la created_in_run folder are as follows:
drwxr-xr-x2 root root 4096 Dec 705:11 created_in_run
I've looked into many things, but I don't think I can solve the problem with Docker's permissions in a Windows environment.
By the way, in a Mac environment, users of the created_in_run folder show root when they check with the ls-la command, but it seems that they can do it by touching the created_in_run folder in the container.
In a Mac environment, if you do this again with the ls-la command, the user name will be displayed properly.
Does anyone know how to successfully perform a touch test
in the created_in_run folder?
Is there any way to solve this problem?
Thank you for your cooperation.
docker
I am writing to let you know that it has been resolved.
First of all, if you want to grant access and use WSL to mount folders on Windows with Docker,
docker run-it-u$(id-u):$(id-g)\
-v\mnt\c\Users\username\Desktop\mounted_folder: /created_in_run<image_id>bash
must be as shown in .
Access rights are then shared successfully and touch test
is now available.
Next, select the folder you want to mount.
/c/Users/'username'/desktop/mounted_folder
In the Windows GUI, you can view it by specifying the path in Explorer as follows:
\wsl$\Ubuntu\c\Users\'username'\desktop\mounted_folder
I wrote \wsl$\Ubuntu~ because the Linux distribution was Ubuntu.
To verify the default distribution, see
wsl --list-v
If you want to mount a folder,
/mnt/c/Users/'username'/desktop/mounted_folder
If this is the case, the path to the folder that Explorer can see is
C:\Users\'username'\Desktop\mounted_folder
will be
This is the folder I want you to mount.
The folder you want to mount is
/c/Users/'username'/Desktop/mounted_folder
If you specified in , and you want to see the folder on the command line, use PowerShell as the command line on Windows.
An error occurs at the command prompt.
Incidentally, when I checked the permissions of the folder, the former case was different from the latter case.
That may be why access rights were not shared with containers.
Incidentally, both id-u
and id-g
results were the same.
I am not sure why the access rights sharing is not working, but I will share it with you.
That's all I have to report as a resolution.
Thank you for your cooperation.
Thank you for your cooperation.
© 2024 OneMinuteCode. All rights reserved.