Как запустить Docker-контейнер не от root
Почему это важно
Процесс от root внутри контейнера становится root на хосте, как только выберется наружу — через баг ядра, примонтированный сокет или неверный volume. Строка USER ничего не стоит.
Как исправить
Что сделать: Добавьте non-root пользователя в Dockerfile перед
CMD.# Добавьте эти строки ПЕРЕД CMD/ENTRYPOINT:
RUN useradd --create-home --shell /bin/sh --uid 1001 appuser \
&& chown -R appuser:appuser /app
USER appuser
# Проверка: пользователь не должен быть root
# docker run --rm myimage id
# → uid=1001(appuser) gid=1001(appuser)
Проходит ли эту проверку ваш репозиторий?
Бесплатно для публичных репозиториев GitHub, без регистрации. До 58 проверок DevOps и безопасности примерно за 5 секунд.