Docker
Ресурсы и безопасность
Редактировать на GitHubВопросы
Можно ли ограничить использование ресурсов (CPU, RAM, IO, Network) для контейнера? Как это реализовано (cgroup)?
Можно. И делается через cgroup. В модуле ядра. А можно посмотреть в докере как ключи ставить https://docs.docker.com/config/containers/resource_constraints/
От кого по умолчанию запускается контейнер? Почему это плохо?
Процесс внутри пользователя запускается от root. id = 0. Лучше вот так делать
FROM alpine
RUN groupadd -r myuser && useradd -r -g myuser
<Здесь еще можно выполнять команды от root-пользователя, например, ставить пакеты>
USER myuserМожно таким образом нарушить изоляцию и получить рутовый доступ. Ну и не все запускают от рута в итоге
Как убить контейнер изнутри?
Через sigkill нельзя. Нужен обработчик сигнала. Sigkill я зарегистрировать не смогу. И игнорировать этот сигнал тоже. Но можно обрабатывать sigterm. И его использовать для выхода из приложения. https://medium.com/@andrestc/killing-a-container-from-the-inside-b4923f3a4182
Возможен ли самостоятельный перезапуск контейнера?
Да, можно вот так указать: docker run --restart=always
Последнее обновление: 11 сент. 2025 г., 14:56:43