Ограничения#

Ограничение объема памяти#

Примечание

Данные ограничения применяются для Docker установленном в привилегированном режиме

Для того, чтобы работало ограничение объема памяти, предоставляемой контейнерам Docker, следует:

  1. К параметрам загрузки ядра в файле /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"
    
  2. Выполнить команду:

    sudo update-grub
    
  3. Перезагрузить ОС.

Для запуска контейнера с ограничением предоставляемой памяти использовать опцию –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'