Почему у докеров есть возможность запускать различный дистрибутив Linux?

Мы можем использовать докер, чтобы тянуть разные изображения. И эти образы отличаются от дистрибутива Linux. Но независимо от того, какой linux distro docker работает, докер может запускать эти разные дистрибутивы Linux, как на виртуальной машине.

Я знаю, что docker использует aufs, чтобы контролировать уровень доступа к чтению и записи. Поэтому он может повторно использовать некоторый файл на главной машине. Но как docker может запустить команду apt-get в контейнере, когда я запускаю docker в arch linux? Является ли образgs содержать двоичный код apt-get? Но у разных дистрибутивов Linux есть разные версии libs и программ. Даже файл конфигурации отличается. Как докеры могут "запускать" ubuntu в арку linux?

Ответы

Ответ 1

Потому что ядро ​​одно и то же.

Общая точка всех дистрибутивов Linux и почему они называются linux, заключается в том, что все они используют ядро ​​linux.

Контейнеры используют одно и то же ядро ​​как хост, поэтому вы можете запускать образ Arch на узле Ubuntu.

Вот обзор Linux.

Ядро является частью операционной системы, которая обрабатывает связь с оборудованием. Это самый низкий уровень операционной системы. Вот список основных функций ядра:

  • Управление памятью
  • управление сетью
  • драйвер устройства
  • управление файлами
  • управление процессами

Поэтому, когда вы используете контейнер, у вас есть только доступ к ядру хоста, поскольку он является единственной частью, которая взаимодействует с оборудованием, если ваша ОС использует хороший syscall, вы можете запускать любой дистрибутив Linux внутри вашего контейнера. (По этой причине вы не можете использовать Windows внутри контейнера: он не использует тот же syscall).

Ответ 2

Да, изображения должны содержать apt-get для того, чтобы вы могли запускать apt-get. Каждое изображение может иметь в нем различное программное обеспечение. Таким образом, вы можете установить изображение докеры Arch или образ ubuntu, например. Вы можете искать общедоступные изображения, используя следующую команду.

docker search <your search term>

поэтому для поиска изображения ubuntu вы можете использовать

docker search ubuntu

Я бы посоветовал вам выполнить учебник докеров и внимательно прочитать все инструкции и ссылки слева, когда вы проходите.