Docker Compose
Ресурсы и документация
Compose file
- Top-level свойство
version
лишь информативное. Указывать его не надо. - Указывать top-level свойство
name
. Когда указано, оно доступно для интерполяции и разрешения в качестве переменной окруженияCOMPOSE_PROJECT_NAME
. services
/service
/build
: Compose Build Specification.- Установка IO limits →
blkio_config
. - Установка CPU limits →
cpu_count
, etc. -
cap_drop
используется для удаления определённых возможностей (capabilities) у контейнера, чтобы повысить его безопасность. Linux capabilities позволяют процессам выполнять привилегированные операции без необходимости предоставления им всех привилегий суперпользователя. Это помогает минимизировать права, которые контейнеры имеют на хост-системе, снижая потенциальные риски. Вот некоторые из ключевых capabilities, которые часто рекомендуется отключать:- AUDIT_WRITE: Запрет на запись в системные журналы аудита.
- CHOWN: Запрет на изменение владельца файлов.
- DAC_OVERRIDE: Запрет на игнорирование файловых разрешений.
- FOWNER: Запрет на изменение файловых атрибутов, если вы не являетесь владельцем.
- FSETID: Запрет на изменение битов set-user-ID и set-group-ID.
- KILL: Запрет на отправку сигналов процессам, которые не принадлежат пользователю.
- MKNOD: Запрет на создание специальных файлов с помощью mknod.
- NET_BIND_SERVICE: Запрет на привязку к низкоуровневым портам (меньше 1024).
- NET_RAW: Запрет на использование raw-сокетов.
- SETFCAP: Запрет на установку файловых capabilities.
- SETPCAP: Запрет на изменение capabilities.
- SYS_CHROOT: Запрет на выполнение chroot.
- SETUID и SETGID: Запрет на изменение UID и GID.
Пример использования в Docker Compose файле: