#docker #alpine
#docker #alpine-linux
Вопрос:
Я понимаю, что при создании образа Docker в качестве наилучшей практики мне не следует использовать root
пользователя, но у меня возникают трудности с пользователем, которого я создал.
Здесь мой Dockerfile
FROM alpine:3.9.2
RUN addgroup -S cetacean amp;amp; adduser -S mobydick -G cetacean
USER mobydick
RUN apk update
И вот ошибка, которую я получаю при ее запуске
ОШИБКА: Не удается заблокировать базу данных: отказано в разрешении
ОШИБКА: Не удалось открыть базу данных apk: отказано в разрешении
Что я должен сделать, чтобы иметь возможность устанавливать пакеты с помощью mobydick
?
Ответ №1:
Согласно рекомендациям, если возможно, мы должны запускать контейнер docker от имени некорневого пользователя.
Мы можем сделать это, добавив пользователя в конце, чтобы вы могли устанавливать все пакеты от имени root, и при запуске контейнера он использует пользователя без прав root.
FROM alpine:3.9.2
RUN addgroup -S cetacean amp;amp; adduser -S mobydick -G cetacean
RUN apk update
USER mobydick
Вы можете прочитать больше здесь.
Комментарии:
1. Спасибо за ваш ответ. Это определенно возможный путь.
2. Вместо этого вам нужно будет запустить некоторые базовые образы
RUN addgroup --system cetacean amp;amp; adduser --system mobydick --ingroup cetacean
, чтобы избежать таких ошибок, какOption s id ambiguous
.