Понимание процессов Docker-контейнеров - PullRequest
0 голосов
/ 30 мая 2018

Извините, если это глупый вопрос, но:

Я пришел из vagrant, где у нас есть полнофункциональная ОС на каждой машине, где под управлением ps -aux мы можем видеть процессы ОС и наши сервисы (язнаю в некоторой степени разницу между приложениями, работающими в виртуальных машинах и Docker).

Тогда я только что построил несколько контейнеров, используя docker-compose, и вошел в контейнер, используя bash (который основан на образе debian: jessie)).После запуска ps -aux я вижу только те службы, которые я установил, а не процесс отдельной ОС.Зачем?Где они?Как это работает?

У Docker есть виртуальная машина, в которой работают контейнеры, каждый контейнер может быть основан на отдельном дистрибутиве, поэтому есть ли ОС и в контейнерах, учитывая тот факт, что есть ОС хоста (ВМ) длядокер

1 Ответ

0 голосов
/ 31 мая 2018

У Docker есть виртуальная машина, в которой работают контейнеры

Нет, контейнеры не являются виртуальными машинами (Docker включает виртуальную машину для настольных версий, но это не контейнер, и естьСреды выполнения виртуальной машины, но это не традиционный контейнер.

Контейнеры - это способ изолировать работающее приложение с пространствами имен ядра для таких вещей, как файловая система, pids и сеть.Все они работают в одном ядре.Извлечение базового образа для Alpine, Ubuntu и т. Д. Дает базовую файловую систему, библиотеки, менеджеры пакетов, но не ядро.Единственный процесс, запускаемый внутри контейнера, - это ваше приложение, и, когда ваше приложение завершает работу, контейнер тоже.Поэтому вы не увидите запущенных утилит ОС.

См. Также этот ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...