Не может выполнить visudo в Докере; файл sudoers не существует

Ubuntu n00b здесь. Я переделываю контейнер Докера, что я создал использование следующего простого Dockerfile:

FROM ubuntu
CMD ["tail","-f","/dev/null"]

В контейнере, как пользователь root, я пытаюсь работать visudo и получите следующий ответ:

удар: visudo: команда, не найденная

Я работал ls /etc и кажется, что у меня нет sudoers файла также.

Действительно ли там что-то является особенным, я должен был вставить свой Dockerfile, чтобы заставить их существовать?

1
задан 19 December 2018 в 11:41

2 ответа

При создании контейнера Вы - корень, таким образом, можно создать пользователей без sudo.

Если Вы получаете контейнерное изображение, которое уже имеет a USER директива, можно все еще стать корнем снова с USER root перед использованием привилегированных команд. Можно позже выпустить другого USER директива для становления пользователем выполнения снова. Другими словами:

Изображение, которое устанавливает не пользователя полномочия:

# "plainuser" image
FROM debian
RUN groupadd -g 1000 appgroup && useradd -g appgroup -u 1000 appuser
USER appuser
ENTRYPOINT ["/usr/bin/id"]

Выполненный с docker run --rm plainuser проверять, что это действительно работает с пользователем appuser.

Давайте получим его:

# "otheruser" image
FROM plainuser
USER root  # Become root again
RUN groupadd -g 1001 appgroup2 && useradd -g appgroup2 -u 1001 appuser2
USER appuser2 # Set new execution user

Выполненный с docker run --rm otheruser.

1
ответ дан 3 December 2019 в 07:22

Я работал он из другого ответа: sudo не установлен по умолчанию. Устанавливать sudo:

apt-get update
apt-get install sudo
2
ответ дан 3 December 2019 в 07:22

Другие вопросы по тегам:

Похожие вопросы: