Совместное использование ядра операционной системы хоста при использовании Docker - PullRequest
1 голос
/ 09 апреля 2019
  1. Если я разверну образ, созданный путем выбора Alpine Linux в качестве базового образа на моем компьютере с Ubuntu (который действует как хост-ОС - там, где установлен Docker), то здесь будут задействованы два ядра -один из Ubuntu, а другой из Alpine?Я читал, что контейнеры Docker будут использовать общее ядро ​​хоста, поэтому я немного запутался здесь.

  2. Если я войду в работающий контейнер и введу другую команду, это будет другой процесс изперспектива хоста ОС?Или это будет другая тема?С точки зрения гостевой ОС, я думаю, что это будут два отдельных процесса.

Просьба уточнить.

Ответы [ 2 ]

2 голосов
/ 09 апреля 2019
  1. «Контейнер» - это просто абстрактный термин.Это просто еще один процесс, запущенный на хосте (Ubuntu).Поскольку ваш гость (Alpine) и хост (Ubuntu) являются операционными системами на основе ядра Linux.Любая команда или программа, которую вы запускаете в гостевой ОС, в конце будут преобразованы (низкоуровневыми библиотеками) в системные вызовы и переданы ядру хоста Ubuntu.

  2. A "контейнер"это не что иное, как группа процессов, к которым ядро ​​хоста применяет некоторые общие политики.Таким образом, любая команда или программа, которую вы запускаете в гостевой ОС (как вы ее называете), скажем, ping создаст процесс на хосте с теми же политиками, которые применяются ядром в качестве вашего контейнера.

2 голосов
/ 09 апреля 2019
  1. Они разделяют ядро ​​вашего хоста.Docker просто изолирует группу процессов в контейнере.

  2. Нет гостевой ОС, только контейнер.И процессы запускаются в Docker-контейнерах так же, как они выполняются на вашем хосте.Если вы запустите top (на хосте), вы увидите, что все процессы, выполняющиеся в контейнерах Docker, являются дочерними процессами любого данного контейнера.

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