Docker сначала инициализирует контейнер, а затем запускает нужную программу. Интересно, как докер управляет адресом памяти контейнера и программы в нем.
Как докер выделяет память процессу в контейнере?
Ответы (2)
Docker не выделяет память, это ОС управляет ресурсами, используемыми программами. Docker (внутренне) использует cgroups, которая является службой ядра. Причина, по которой команда ps
(на хосте) не отображает процессы, запущенные в контейнере, заключается в том, что контейнеры работают в разных cgroups
, которые изолированы друг от друга.
person
farzad
schedule
11.07.2018
Вместо того, чтобы беспокоиться о памяти докера, вам нужно посмотреть на базовый хост (VM/экземпляр), на котором вы запускаете контейнер докера. Количество контейнеров определяется рядом факторов, в том числе тем, какое приложение работает в контейнере. См. здесь ограничения, с которыми вы можете столкнуться ">Существует ли максимальное количество контейнеров, работающих на хосте Docker?
person
ephemeral972
schedule
11.07.2018
ps
, чтобы увидеть процесс? Или как контейнер в докере сообщает ОС, что есть процесс, необходимый для выделения памяти? - person Luba A   schedule 11.07.2018