2.2 KiB
2.2 KiB
status, type, tags, created, updated, title
| status | type | tags | created | updated | title | |||
|---|---|---|---|---|---|---|---|---|
| stable | concept |
|
2025-12-17 | 2026-05-07 | Docker - Дополнительные Знания |
Docker - Дополнительные Знания
Запуск Контейнера С Непривилегированным Пользователем
Рассмотрим пример работы с непривилегированным пользователем:
- не использовать root внутри контейнера и не запускать его с повышенными привелегиями
- создать пользователя можно сразу создать в Dockerfile
- переключить пользователя можно с помощью директивы USER в Dockerfile
FROM mariadb
USER 999
Rootless-mode - Podman
Docker решил предпринять попытки отказаться от docker daemon и docker socket с root привилегиями и разрабатывает концепцию rootless-mode
- Идея нетривиальна в реализации, так как возникают особенности установки бинарников и запуска скриптов.
- Логичной заменой есть Podman, написанный на golang, она уже rootless и daemonless по умолчанию.
- Podman обратно совместим в docker (в т.ч. собирает свои образы из Dockerfile)
- Существует podman builder, позволяющий описывать образы с помощью bash.
- Практически все команды докера существуют в подмане.
Связанные заметки
- Super-user — "не использовать root внутри контейнера" — прямое применение принципа наименьших привилегий из Linux; rootless Podman реализует его на уровне демона
- Проблемы дистрибутивов — реальный кейс: запуск Rails в контейнере как решение проблемы OpenSSL на Arch Linux