Ubuntu в Windows 10: Docker против WSL

11

Я понимаю, что в настоящее время можно запустить Ubuntu в Windows 10 двумя различными способами:

  1. Использование подсистемы Windows для Linux (WSL).
  2. Установите докер для Windows 10 и используйте контейнер с Ubuntu.

Однако я не смог найти легкого для понимания объяснения того, в чем заключаются различия между ними (речь идет о приложениях), а также преимущества и недостатки.

Я нашел пост, рассказывающий об использовании docker в WSL: Ubuntu через (Windows Linux Subsystem) и Docker . Но я говорю об использовании его непосредственно в Windows 10. Поэтому я буду признателен за любую информацию об этих двух.

alvgom
источник
Я не эксперт ни в одном из них, чтобы написать ответ, но мой голос переходит к Докеру. Причина в том, что Docker подразумевает виртуализацию, поэтому все должно работать. WSL, с другой стороны, полон ошибок. Это работает для тестов, веселья и в основном развития; но если вы собираетесь развернуть что-то серьезное, это не ваш выбор, по крайней мере, пока.
Привет, Ангел,

Ответы:

14

Обновлен 2020/02/18, чтобы отразить изменения, внесенные в WSL2

Здравствуй! Microsoft PM работает над WSL и командной строкой здесь.

WSL позволяет вам запускать собственные немодифицированные двоичные файлы Linux ELF-64 непосредственно в Windows, а также запускать ваши любимые инструменты Linux на вашей «хостовой» ОС Windows.

WSL1 принял решение добавить слой, совместимый с syscall для Linux, в верхней части ядра NT, позволяя бинарным файлам Linux работать поверх NT, совместно используя ту же базовую файловую систему, сеть, список процессов и т. Д., Что и в основной ОС.

С другой стороны, скоро выйдет WSL2, который запускает двоичные файлы дистрибутивов в контейнерах Linux, поверх реального ядра Linux, внутри облегченной виртуальной машины, которая выделяет только оперативную память, необходимую приложениям, которые она запускает, а затем высвобождает освобожденную оперативную память обратно в хост ОС. Это обеспечивает 100% совместимость с Linux и позволяет вашим инструментам Linux работать с почти собственной производительностью, а также потребляет минимальные ресурсы, необходимые от хоста, обеспечивая вашу машину работает быстро и без сбоев.

До WSL2 можно было запустить клиент Docker в WSL1, используя его для управления Docker для Windows, работающим поверх Hyper-V на локальном хосте, или для управления удаленным сервером Docker. Но нельзя запустить Docker Engine на WSL1 по многим техническим причинам.

Однако вы можете сделать то же самое в Docker на WSL2, но вы также можете запустить сам Docker Engine поверх WSL, если хотите. Это предпочтительный и будущий путь Docker для запуска Docker на рабочем столе Windows .

Чтобы узнать больше о WSL, просмотрите видео и документы здесь: https://aka.ms/learnwsl

Рич Тернер
источник
Я думаю, что этот ответ относится к WSL, WSL 2 запускает собственное ядро ​​Linux, которое взаимодействует с Windows. Я считаю, что пользовательское ядро ​​Windows Linux работает в виртуальной машине.
Джордан Стюарт
1
Это сделал. Только что опубликовал обновление, чтобы лучше отражать нашу реальность WSL2 :)
Rich Turner
2

Это верно. Одна вещь, которую вы не можете не упомянуть, это то, что WSL в настоящее время довольно медленный в io, даже с быстрым процессором ssd / много процессоров / 8-ядерных процессоров xeon. Это все еще проблема в 01/2019. Я только что сделал луч @ DESKTOP-O0MT13B: / mnt / c / Users / rayjh $ dd if = / dev / zero из = test bs = 64k count = 16k conv = fdatasync на моей рабочей станции с samsung SSD и получил только 97,6 МБ / с.

Запустив Ubuntu LTS из металла, эта коробка получит НЕСКОЛЬКО раз. Не берите в голову бесконечные проблемы, когда вы пытаетесь объединить WSL с VSCODE.

Я вытираю Windows 10 отсюда и устанавливаю Ubuntu 18.04LTS.

rayj
источник
Вам не нужно быть токсичным, особенно в конце. Скорее, расскажите нам, что вы сделали, чтобы исследовать причину проблем, с которыми вы сталкиваетесь, и являются ли они известными проблемами или нет, и если кто-то работает над их устранением или нет. Я уверен, что они все же. И вам не нужно удалять окна, вам просто нужно установить менеджер hyper-v и быструю установку Ubuntu, и вы настроены на среду разработки Linux, если хотите работать из виртуального рабочего стола Linux. В противном случае продолжайте использовать WSL и подождите, пока ваши проблемы не будут устранены. 97 МБ / с - это не так медленно.
Поль-Себастьян Маноле
AFAIK проблемы со скоростью связаны с подсистемой доступа к файлам Windows, и обходной путь находится в разработке.
Пол-Себастьян Маноле
WSL все еще кажется медленным. Но он очень быстро запускается и позволяет использовать обычные инструменты linux cli. Сопоставление файловой системы Linux и Windows кажется сложным.
Джордан Стюарт
Это стало заметно быстрее. Однако я попытался использовать Miniconda и установить пакеты, и это все еще было немного медленно.
Рай