Вы не можете.Вы всегда можете запустить
docker exec -u 0 (container ID) sh
, чтобы получить корневую оболочку.(Предполагая, что образ имеет оболочку, но почти все делают.)
Также помните, что любой, кто может выполнить любую команду docker
, может редактировать любой файл на хосте, и оттуда может легко стать пользователем root и можетпродвигайтесь в /var/lib/docker
до глубины души.
Обычно считается хорошей практикой устанавливать контейнеры для запуска без полномочий root с помощью RUN adduser
, чтобы создать пользователя с использованием инструментов базового дистрибутива, а затем Dockerfile * 1011.* директива, но оператор может переопределить это во время выполнения, если он действительно этого хочет.