Ограничения#
Ограничение объема памяти#
Примечание
Данные ограничения применяются для Docker установленном в привилегированном режиме
Для того, чтобы работало ограничение объема памяти, предоставляемой контейнерам Docker, следует:
К параметрам загрузки ядра в файле /etc/default/grub в строку значений параметра GRUB_CMDLINE_LINUX_DEFAULT добавить параметры:
bash cgroup_enable=memory swapaccount=1
Пример итоговой строки:
GRUB_CMDLINE_LINUX_DEFAULT="parsec.max_ilev=63 quiet net.ifnames=0 libata.force=noncq net.ifnames=0 cgroup_enable=memory swapaccount=1"
Выполнить команду:
sudo update-grub
Перезагрузить ОС.
Для запуска контейнера с ограничением предоставляемой памяти использовать опцию –memory, например:
sudo docker run -it --memory 100m alpine /bin/sh
Запуск Docker на пониженном уровне целостности#
В ALSE предусмотрена возможность запуска гипервизора контейнеров Docker на пониженном уровне целостности.
Для работы гипервизора выделен уровень целостности 2 (Виртуализация, Virtualization). Работа на пониженном уровне целостности не позволит коду, выполняемому в контейнерах, выполнять деструктивные действия.
По умолчанию эта возможность не используется.
Для переключения гипервизора контейнеров Docker на работу в режиме пониженной целостности выполнить следующие команды:
sudo astra-docker-isolation enable
sudo systemctl restart containerd.service
sudo systemctl restart docker.service
При этом перезапуск служб должен выполняться отдельными командами.
Для отключения работы гипервизора контейнеров Docker на пониженном уровне МКЦ выполнить команды:
sudo astra-docker-isolation disable
sudo systemctl restart containerd.service
sudo systemctl restart docker.service
Выполнение команд docker с нулевой меткой безопасности от имени других учетных записей#
Для выполнения команд docker от имени других учетных записей можно использовать конструкцию:
sudo -u <имя_пользователя> -H -i docker <docker-команда>
Важно
-u — опция, определяющая от имени какого пользователя (целевого пользователя) будет выполнена команда;
-H — опция, присваивающая переменной HOME значение домашнего каталоге целевого пользователя;
-i — опция, обеспечивающая перед выполнением команды переход в домашний каталог целевого пользователя.
Выполнение команд docker с ненулевой меткой безопасности от имени других учетных записей#
Для присвоения ненулевой метки безопасности используется команда pdp-exec:
sudo pdp-exec -u macuser -l "1:0:0:0" -- bash -c 'HOME=/home/.pdp/macuser/l1i0c0x0t0x0 ; TMP=/var/private/tmp/l1i0c0x0t0x0 ; cd $HOME ; docker images'