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
```