40 lines
2.2 KiB
Markdown
40 lines
2.2 KiB
Markdown
---
|
||
status: stable
|
||
type: concept
|
||
tags:
|
||
- devops
|
||
- containerization
|
||
- docker
|
||
created: 2025-12-17
|
||
updated: 2026-05-07
|
||
aliases:
|
||
- Docker - Дополнительные Знания
|
||
---
|
||
# Docker - Дополнительные Знания
|
||
|
||
## Запуск Контейнера С Непривилегированным Пользователем
|
||
|
||
Рассмотрим пример работы с непривилегированным пользователем:
|
||
|
||
- не использовать root внутри контейнера и не запускать его с повышенными привелегиями
|
||
- создать пользователя можно сразу создать в Dockerfile
|
||
- переключить пользователя можно с помощью директивы **USER** в Dockerfile
|
||
|
||
```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 |