Из того, что я прочитал, я считаю, что CoreOS - это простой дистрибутив Linux, который существенно облегчает запуск контейнеров Docker, содержащих любые приложения или службы, которые вам нужны.
Из Документация CoreOS Насколько я понимаю, намерение состоит в том, чтобы вы разделяли большинство своих сервисов на отдельные контейнеры Docker, чтобы затем можно было масштабировать их по горизонтали, позволяя флоту управлять контейнером на нескольких узлах.
Я немного запутался, когда вы хотите запустить службу, для которой требуется определенное пользовательское пространство Linux (например, apache, работающий на Ubuntu или Fendora или что-то в этом роде). Скажем, например, у меня есть контейнер с запущенными на нем Ubunutu и apache, и я хочу, чтобы еще один контейнер работал с экземпляром Samba (также на Ubunutu), разве я не эффективно запускаю 2 копии Ubuntu со всеми накладными расходами на запуск этих ОС?
Я думаю, что, скорее всего, я неправильно понимаю, как работают контейнеры - если я запускаю Ubuntu в контейнере, то, вероятно, я использую ядро CoreOS, и только "пользовательское пространство" часть ОС "запущена"?
Тогда может возникнуть вопрос, является ли запуск ядра дорогостоящей частью работы ОС? Итак, когда вы запускаете виртуальные машины, вы теряете много ресурсов не только из-за необходимости имитировать оборудование, но и из-за запуска нескольких ядер?
Да, у вас несколько пользовательских площадок, но только одно ядро, что означает, что ядро имеет полный обзор всего управления памятью и может наиболее эффективно разделить ее между запущенными контейнерами на основе их общих ресурсов ЦП и т. Д. , контейнер - это просто еще один процесс, которому нужен доступ к оборудованию. Каждый контейнерный процесс просто использует определенную пользовательскую область, которая, когда доходит до нее, представляет собой просто разнесенную по именам кучу файлов на диске.