Docker автоматически создает собственные контрольные группы всех типов. Просмотреть их список можно, выбрав каталоги docker в иерархии контрольных групп: ``` root@vagrant:/sys/fs/cgroup$ ls */docker | grep docker blkio/docker: cpuacct/docker: cpu,cpuacct/docker: cpu/docker: cpuset/docker: devices/docker: freezer/docker: hugetlb/docker: memory/docker: net_cls/docker: net_cls,net_prio/docker: net_prio/docker: perf_event/docker: pids/docker: systemd/docker: ``` При запуске контейнера автоматически создается еще один набор контрольных групп внутри контрольных групп docker. Создайте контейнер и задайте для него ограничения памяти, который мы увидим позже внутри контрольной группы memory. Этот пример запускает контейнер в фоновом режиме, который бездействует в течение времени, достаточного для просмотра его контрольных групп ``` root@vagrant:~$ docker run --rm --memory 100M -d alpine sleep 10000 68fb008c5fd3f9067e1aa245b4522a9f3675720d8953371ecfcf2e9faf91b8a0 ``` Если посмотреть иерархию контрольных групп, то вы увидите созданные для этого контейнера новые контрольные группы с его идентификатором в качестве названия контрольной группы: ``` root@vagrant:/sys/fs/cgroup$ ls memory/docker/ 68fb008c5fd3f9067e1aa245b4522a9f3675720d8953371ecfcf2e9faf91b8a0 cgroup.clone_children cgroup.event_control cgroup.procs memory.failcnt memory.force_empty memory.kmem.failcnt memory.kmem.limit_in_bytes memory.kmem.max_usage_in_bytes ... ``` Проверяем ограничение на память в байтах внутри контрольной группы memory: ``` root@vagrant:/sys/fs/cgroup$ cat memory/docker/68fb008c5fd3f9067e1aa245b4522a9f36 75720d8953371ecfcf2e9faf91b8a0/memory.limit_in_bytes 104857600 ```