Создание образов Docker в системе без корневого доступа
Я пытаюсь построить Dockerfile
в образ. Я хотел бы использовать систему под управлением OpenSUSE, которая довольно заблокирована - у меня нет доступа с правами root, и поэтому я не могу установить docker или запустить демон docker для использования обычного docker build
метод.
Я рассмотрел различные способы сделать это, но все они, кажется, требуют root-доступа в какой-то момент, несмотря на утверждение, что они работают как непривилегированные.
img показалось многообещающим, но запуск двоичного кода приводит к ошибке failed to use newuidmap
и исправление этого, по-видимому, требует изменения корневого файла.
Buildah также выглядел многообещающе, но я сталкиваюсь с подобными проблемами uid, которые требуют root для исправления.
1 ответ
Вы можете создавать образы контейнеров, используя buildah без корневого доступа. Для этого необходимо настроить сопоставление UID, для которого требуется доступ с правами root - редактирование /etc/subuid
:
$ cat /etc/subuid
username:100000:65536
$ ll /etc/subuid
-rw-r--r--. 1 root root 34 Dec 3 14:17 /etc/subuid
Если ваш дистрибутив не обеспечивает /etc/subuid
предварительно заполненный, который работает с вашим непривилегированным пользователем, вы ничего не можете сделать, учитывая текущую реализацию ядра Linux (<4.20).
Если вы спрашиваете о запуске Docker с использованием root или sudo, вы можете использовать это.
Тип:
$ sudo gpasswd -a $USER docker
Нажмите Enter, затем введите:
$ newgrp docker
Теперь запустите Docker с использованием root