Создание образов 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

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