Каковы практические (не технические) различия между внутренними компонентами контейнера docker debian и виртуальной машины debian?

В системе нет такого средства - потому что такая логика действительно принадлежит демону. Однако, если вы не можете изменить данный демон, вы можете обойти его, создав простую единицу измерения, которая проверит существование файла и создаст соответствующую переменную среды, а также вместо добавления «EnvironureFile =» к вашей единице измерения. Также добавьте зависимость, чтобы убедиться, что модуль всегда выполняется после модуля, который создает переменные среды.

-121--125323-

Hmm, выглядит так, будто bash по-прежнему не соответствует обозначению префикса, таким образом,

$ < /etc/passwd while read line; do echo $line; done
bash: syntax error near unexpected token `do'

в то время как zsh допускает это перенаправление до цикла во время .

-121--63661-

Я согласен с rexroni, что установка Arch - это образовательный опыт. Однако, если вы в спешке и просто хотите сделать все, вы можете посмотреть на Manjaro Linux ( https://wiki.manjaro.org/index.php?title=Download_Manjaro ), который я считаю Arch с установщиком.

2
19.04.2018, 12:50
1 ответ

Основные практические различия между контейнером Docker и виртуальной машиной:

  1. Образ Docker — это просто базовый образ исходной системы(debootstapпомогает получить этот базовый образ ), и, конечно, он может (или нет )содержать ядро, initrd... Но ядро, initrd... не имеют смысла вместо исследований, разработки, других зависимостей пакетов. Так что, если они не нужны, то их можно смело удалять.

  2. Контейнеры Docker запускаются в другом пространстве имен , которое скрывает реальные системные процессы, сетевые подключения... от воздействия контейнера. Проще говоря, вы не можете killреальный системный процесс из контейнера Docker, но вы можете видеть процесс контейнера Docker как обычный процесс из реальной системы и делать с ним что угодно. VM организована сложнее вместо пространства имен концепции :все VM запускаются как огромные приложения, которые управляются программным обеспечением VM (VirtualBox, VMware... ). Программное обеспечение VM перехватывает все системные вызовы из этого приложения и передает их на реальное оборудование. Поэтому они медленнее, чем концепция контейнера.

  3. Контейнеры Docker обеспечивают поддержку среды, которая необходима для запуска некоторых приложений (определенных версий библиотек, программных компонентов... ), но не ядра. Поэтому, если ваше приложение использует новые функции ядра, они не будут работать.

  4. Контейнеры Docker часто не содержат полного образа системы, поскольку основной целью концепции Docker является совместное использование приложений. Основной целью VM является совместное использование операционных систем.

Нет никакой разницы в реальной системе, которая запускает определенный образ Docker (, за исключением случаев, когда ваше приложение зависит от конкретного ядра ).

3
27.01.2020, 22:02

Теги

Похожие вопросы