Какой пользователь по умолчанию для Docker Exec? - PullRequest
0 голосов
/ 29 августа 2018

Документация Докера по этому вопросу не ясна, и Google дает мне противоречивые ответы.

Является ли root пользователем по умолчанию при вызове docker exec (без --user)?

Влияет ли строка USER в Dockerfile на пользователя по умолчанию для docker exec?

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Пользователь по умолчанию в docker exec - это тот же пользователь, который использовал для запуска контейнера, который можно установить при запуске docker или в вашем файле компоновки.

Если вы не указали явно пользователя при запуске контейнера, по умолчанию будет настроен пользователь, настроенный на изображении, вы можете проверить изображение, чтобы найти его. Это настраивается последней строкой USER в Dockerfile. Он также может быть настроен родительским изображением, указанным в строке FROM.

Если ни в образе, ни в команде запуска не указан пользователь, по умолчанию в Docker используется root, uid 0.

0 голосов
/ 29 августа 2018

Влияет ли строка USER в Dockerfile на пользователя по умолчанию для docker exec?

Да, , как указано в документации :

Инструкция USER задает имя пользователя (или UID) и, необязательно, группу пользователей (или GID) для использования при запуске образа и для любых инструкций RUN, CMD и ENTRYPOINT, следующих за ним в Dockerfile.

Вот пример Dockerfile, который создает пользователя и делает его запускаемым пользователем.

cat Dockerfile
FROM ubuntu:latest
RUN useradd -r sathya
USER sathya

Построить изображение

docker build -t sathya:user .
Sending build context to Docker daemon  19.46kB
Step 1/3 : FROM ubuntu:latest
 ---> 113a43faa138
Step 2/3 : RUN useradd -r sathya
 ---> Running in 5b72508a891d
Removing intermediate container 5b72508a891d
 ---> b81692196e13
Step 3/3 : USER sathya
 ---> Running in d43d399a86ac
Removing intermediate container d43d399a86ac
 ---> c0388a898992
Successfully built c0388a898992
Successfully tagged sathya:user

Запустить контейнер

docker run -it -d sathya:user bash
0903e85fa4de4bb820f015f3ff2bbca9eb2c038814ff7ea809519334687597c7

Exec контейнер. Убедитесь, что запущенный пользователь является пользователем по умолчанию

docker exec -it 0903e85fa4de bash
sathya@0903e85fa4de:/$ whoami
sathya
...