Как правильно работать с пользователями в Docker-контейнерах?
user - это словесное представление для удобства, как домены в интернете
у файла нет параметра имя юзера, имя группы юзера, там как ip адреса - номер юзера и номер группы юзера
допустим я юзер dka на хосте uid/gid 1000
у меня папка /tmp/docker с кодом
я запускаю дебиан в контейнере и добавляю туда свою папку, которая будет /codedocker run -v /tmp/docker:/code -it --rm debian bash
создаю юзера внутри контейнера с uid 1000 gid 1000 ( как у моего юзера на хосте)root@364785fa76ce:/code# groupadd -g 1000 my_docker_user_group
root@364785fa76ce:/code# useradd --uid 1000 --gid 1000 my_docker_user
прыгаю под нового юзера с помощью su (в докер файле это директива USER)root@364785fa76ce:/code# su my_docker_user
все, теперь я могу кодить на хосте, а запускать в контейнере и у меня не будет проблем с правами на файлы
Зачем городить внутри контейнера эти конструкции с useradd --uid 1000 --gid 1000 если можно запустить контейнеры с параметром  --cgroupns host который как раз и пробросит нужный uid и guid в контейнер.
И ваши файлы на хосте не будут менять uid на рутовый.

$  docker run -it --rm -v $(pwd):/app --cgroupns host debian:latest bash
Unable to find image 'debian:latest' locally
latest: Pulling from library/debian
bd8f6a7501cc: Pull complete 
Digest: sha256:ba4a437377a0c450ac9bb634c3754a17b1f814ce6fa3157c0dc9eef431b29d1f
Status: Downloaded newer image for debian:latest
root@aa219fb22248:/# cd app/
root@aa219fb22248:/app# ls -la
total 28
drwxrwxr-x 3 1000 1000 4096 Apr 30 11:58 .
drwxr-xr-x 1 root root 4096 Apr 30 13:59 ..
drwxrwxr-x 8 1000 1000 4096 Apr 30 11:59 .git
-rw-rw-r-- 1 1000 1000 1674 Apr 29 20:45 Dockerfile
-rw-rw-r-- 1 1000 1000  491 Apr 30 11:58 README.md