Как в Docker запустить процессы из под текущего пользователя?

Для того чтобы в Docker контейнере запустить процессы от имени текущего пользователя, необходимо соблюсти несколько шагов.

1. Создать Dockerfile:

FROM openjdk:<версия_Java>
RUN groupadd -g <ID_группы> <имя_группы> && 
    useradd -u <ID_пользователя> -g <ID_группы> -m -s /bin/bash <имя_пользователя>
USER <имя_пользователя>
WORKDIR /home/<имя_пользователя>

2. Собрать Docker образ с помощью команды docker build:

docker build -t <имя_образа> .

3. Запустить Docker контейнер с флагом --user для указания текущего пользователя:

docker run -it --user $(id -u):$(id -g) <имя_образа>

4. После запуска контейнера вы будете работать от имени текущего пользователя внутри контейнера. Все процессы, которые будут запускаться внутри контейнера, будут выполняться от имени этого пользователя.

Важно отметить, что при запуске команды docker run с флагом --user необходимо указать правильные значения ID пользователя и группы ($(id -u) и $(id -g)), чтобы контейнер корректно работал с файлами и директориями, принадлежащими текущему пользователю. Если вы не укажете правильные значения, то доступ к файлам и директориям может быть ограничен.

Также следует помнить, что контейнеры Docker являются изолированными средами выполнения, поэтому доступ к ресурсам операционной системы (например, файловой системе или сетевым ресурсам) может быть ограничен.