Является ли он избыточным в Dockfile для запуска корневого каталога USER, так как вы уже root?
Глядя на этот Dockerfile, он помечается:
FROM sequenceiq/pam:centos-6.5
MAINTAINER SequenceIQ
USER root
Теперь это кажется излишним, поскольку по умолчанию вы уже являетесь пользователем root
. Но ради аргумента - давайте посмотрим на родительский Dockerfile... который не меняет пользователя.
Теперь давайте посмотрим на прародитель Dockerfile. (Похоже, он недоступен).
Мой вопрос: избыточно ли в Dockfile запускать USER root, поскольку вы уже являетесь пользователем root?
Ответы
Ответ 1
Да, это избыточно, но почти нет недостатка, чтобы оставить эту избыточность. Возможно, это было сделано для разработки против других изображений или для поддержки использования, которое может заменить базовое изображение. Это можно сделать для предотвращения будущих проблем, если изображение вверх по течению изменит его поведение. Или они могут просто хотеть быть явным, поэтому очистить этот контейнер нужно, чтобы запускать команды как root.
Ответ 2
Если изображение было создано из источника, который изменил пользователя root, у вас может не быть доступа ко всем ресурсам внутри него. Однако, если вы загрузите изображение:
ОТ xxxxxx/xxxxxx: последние
USER root
Это даст вам root-доступ к ресурсам изображений. Я просто использовал это после отказа в доступе к изменению /etc/apt/sources.list в существующем образе, который не был моим. Это работало нормально, и позвольте мне изменить sources.list
Ответ 3
Это на самом деле зависит от изображения. В некоторых изображениях, таких как grafana/grafana
, пользователь по умолчанию не является пользователем root и sudo
отсутствует. Таким образом, вы должны использовать USER root
для любой привилегированной задачи (например, обновление и установка приложений через apt).